Fichier Json à traiter et recuperer ses parametres
jayzman
Messages postés
46
Date d'inscription
Statut
Membre
Dernière intervention
-
jayzman1 Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
jayzman1 Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour à vous,
je voudrai savoir comment parser un fichier json si il en de la forme
je voudrai que le entente "event internal-call-setup-fail" et "event internal-call-setup-done" sont le table de ses attribut,
j'ai un code qui parse juste l'un
voici mon code
est-ce-qu'il y a quelqu'un pour m'aider
merci
jayzman
je voudrai savoir comment parser un fichier json si il en de la forme
{ "event internal-call-setup-fail" : { "ue-context valid" : "2974", "rnc-module-id valid" : "1", "c-id-1 valid" : "28247", "rnc-id-1 valid" : "2", "c-id-2 invalid" : "65535", "rnc-id-2 invalid" : "4095", "c-id-3 invalid" : "65535", "rnc-id-3 invalid" : "4095", "c-id-4 invalid" : "65535", "rnc-id-4 invalid" : "4095", "source-conf valid" : "Speech (2)", "c-id-serv-hsdsch-cell invalid" :" 65535", "crnc-id-serv-hsdsch-cell invalid" : "4095", "source-connection-properties" : "cm dl used, cm in ul used, 10ms tti (default value for non e-dch connections), fixed size rlc and mac-hs used on hs-dsch (non-el2), 64qam not activated, amr-nb mm single-rate 12.2,(67)", "target-conf valid" : " Speech (2)", "target-connection-properties" : "cm dl used, cm in ul used, 10ms tti (default value for non e-dch connections), fixed size rlc and mac-hs used on hs-dsch (non-el2), 64qam not activated, amr-nb mm single-rate 12.2,(67)", "wanted-conf valid" : "Speech + Packet 64kbps (10)", "wanted-connection-properties" : "cm dl used, cm in ul used, 10ms tti (default value for non e-dch connections), fixed size rlc and mac-hs used on hs-dsch (non-el2), 64qam not activated, amr-nb mm single-rate 12.2,(67)", "procedure-indicator valid" : "event-value-rab-establishment-proc (1)", "evaluation-case valid ": "event-value-not-applicable-eval (0)", "exception-class valid" : "event-value-rn-ul-resource-availability (2)", "cause-value valid" : "event-value-no-of-simultaneous-rl-on-sf16-exceeded-for-non-guaranteed-service-class (22)", "extended-cause-value valid" : "event-value-extended-cause-value-not-applicable (0)", "severity-indicator valid" : "0", "trigger-point valid" : "event-value-ranap-rab-assignment-request (0)", "utran-ranap-cause valid ": "no_resource_available (114)", "cn-id valid" : "event-value-ps-cn (1)", "originating-state valid" : "event-value-cell-dch-orig (4)", "rrc-establishment-cause invalid" :" undef (31)", "cello-aal2nci-reject-reason valid" : "event-value-not-applicable-aal2 (0)", "source-c-id-1-secondary-serv-hsdsch-cell invalid" :" 65535", "source-connection-properties-ext" : "0", "target-connection-properties-ext" : "0", "wanted-connection-properties-ext" : "0", "imeisv" : "ffffffffffffffff", "csfb valid" : "event-value-no-csfb-csfb (0)", } } { "event internal-call-setup-done" : { "ue-context valid" : "2975", "rnc-module-id valid" : "2", "c-id-1 valid" : "287", "rnc-id-1 valid" : "21", "c-id-2 invalid" : "6553", "rnc-id-2 invalid" : "40395", "c-id-3 invalid" : "635", "rnc-id-3 invalid" : "4035", "c-id-4 invalid" : "65535", "rnc-id-4 invalid" : "4085", "source-conf valid" : "SPEEDch (2)", "c-id-serv-hsdsch-cell invalid" :" 653235", "crnc-id-serv-hsdsch-cell invalid" : "55656", "source-connection-properties" : "cm dl used, cm in ul used, FUCIKA fixed size rlc and mac-hs used on hs-dsch (non-el2), 64qam not activated, amr-nb mm single-rate 12.2 (67)", "target-conf valid" : " Speech (2)", "target-connection-properties" : "cm dl used, cm in ul used, 10ms tti (default value for non e-dch connections), fixed size rlc and mac-hs used on hs-dsch (non-el2), 64qam not activated, amr-nb mm single-rate 12.2 (67)", "wanted-conf valid" : "Speech + Packet 64kbps (10)", "wanted-connection-properties" : "cm dl used, cm in ul used, 10ms tti (default value for non e-dch connections), fixed size rlc and mac-hs used on hs-dsch (non-el2), 64qam not activated, amr-nb mm single-rate 12.2 (67)", "procedure-indicator valid" : "event-value-rab-establishment-proc (1)", "evaluation-case valid ": "event-value-not-applicable-eval (0)", } }
je voudrai que le entente "event internal-call-setup-fail" et "event internal-call-setup-done" sont le table de ses attribut,
j'ai un code qui parse juste l'un
voici mon code
String filePath = "D:\\testJs.txt"; try { // read the json file FileReader reader = new FileReader(filePath); JSONParser jsonParser = new JSONParser(); JSONObject jsonObject = (JSONObject) jsonParser.parse(reader); // get a String from the JSON object //String firstName = (String) jsonObject.get("firstname"); //System.out.println("The first name is: " + firstName); // get a number from the JSON object //long id = (long) jsonObject.get("id"); //System.out.println("The id is: " + id); // get an array from the JSON object JSONArray lang= (JSONArray) jsonObject.get("event internal-call-setup-fail"); // take the elements of the json array Iterator i = lang.iterator(); // take each value from the json array separately while (i.hasNext()) { JSONObject innerObj = (JSONObject) i.next(); String ueContext=(String) innerObj.get("ue-context valid"); String rncmoduleid=(String) innerObj.get("rnc-module-id valid"); String cid=(String) innerObj.get("c-id-1 valid"); String rnc1=(String) innerObj.get("rnc-id-1 valid"); String cid2=(String) innerObj.get("c-id-2 valid"); String rnc2=(String) innerObj.get("rnc-id-2 valid"); String cid3=(String) innerObj.get("c-id-3 valid"); String rnc3=(String) innerObj.get("rnc-id-3 valid"); String cid4=(String) innerObj.get("c-id-4 valid"); String rnc4=(String) innerObj.get("rnc-id-4 valid"); String source_conf=(String) innerObj.get("source-conf valid"); String cidServ=(String) innerObj.get("c-id-serv-hsdsch-cell valid"); String rncServ=(String) innerObj.get("crnc-id-serv-hsdsch-cell valid"); String sourceCon=(String) innerObj.get("source-connection-properties"); String targConf=(String) innerObj.get("target-conf valid"); String targCon=(String) innerObj.get("target-connection-properties"); String wantConf=(String) innerObj.get("wanted-conf valid"); String wantCon=(String) innerObj.get("wanted-connection-properties"); String procInd=(String) innerObj.get("procedure-indicator valid"); String evalCase=(String) innerObj.get("evaluation-case valid"); String exClass=(String) innerObj.get("exception-class valid"); String causeVal=(String) innerObj.get("cause-value valid"); String extCause=(String) innerObj.get("extended-cause-value valid"); String severInd=(String) innerObj.get("severity-indicator valid"); String trigPoint=(String) innerObj.get("trigger-point valid"); String utrRanap=(String) innerObj.get("utran-ranap-cause valid"); String cnid=(String) innerObj.get("cn-id valid"); String origState=(String) innerObj.get("originating-state valid"); String rrcEst=(String) innerObj.get("rrc-establishment-cause valid"); String celAal=(String) innerObj.get("cello-aal2nci-reject-reason valid"); String sourcCid=(String) innerObj.get("source-c-id-1-secondary-serv-hsdsch-cell valid"); String sourceConP=(String) innerObj.get("source-connection-properties-ext"); String targConP=(String) innerObj.get("target-connection-properties-ext"); String wantConP=(String) innerObj.get("wanted-connection-properties-ext"); String imeisv=(String) innerObj.get("imeisv"); String csfb=(String) innerObj.get("csfb valid"); internal internal1=new internal(ueContext,rncmoduleid,cid,rnc1,cid2,rnc2,cid3,rnc3,cid4,rnc4,source_conf,cidServ,rncServ,sourceCon,targConf,targConf,targCon,wantConf,wantCon,procInd,evalCase,exClass,causeVal,extCause,severInd,trigPoint,utrRanap,cnid,origState,rrcEst,celAal,sourcCid,sourceConP,targConP,wantConP,imeisv,csfb); test.insert(internal1); System.out.println("ueContext=" + ueContext); System.out.println("rncmoduleid=" + rncmoduleid); System.out.println("source-connection-properties=" + sourceCon); System.out.println("imeisv=" + imeisv); System.out.println("cid2=" + cid2); } // handle a structure into the json object //JSONObject structure = (JSONObject) jsonObject.get("job"); //System.out.println("Into job structure, name: " + structure.get("name")); } catch (FileNotFoundException ex) { } catch (IOException ex) { } catch (ParseException | NullPointerException ex) { }
est-ce-qu'il y a quelqu'un pour m'aider
merci
jayzman
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Fichier Json à traiter et recuperer ses parametres
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
1 réponse
Bonjour,
C'est quoi la question exactement ?
Perso, si je devais représenter un tel fichier json en objet Java je ferais quelque chose comme ceci :
Remarque : pour parser ton fichier en json il faudrait que son format soit bien du json dedans, mais tel que tu nous le donne il y a des erreurs.
Tu devrais regarder un validateur de json comme JSONLint pour corriger le fichier en entrée.
La confiance n'exclut pas le contrôle
C'est quoi la question exactement ?
Perso, si je devais représenter un tel fichier json en objet Java je ferais quelque chose comme ceci :
public class Event { private Map<EventId, String> internalCallSetupFail; private Map<EventId, String> internalCallSetupDone; }
public enum EventId { UE_CONTEXT_VALID, RNC_MODULE_ID_VALID, C_ID_1_VALID, ... }
Remarque : pour parser ton fichier en json il faudrait que son format soit bien du json dedans, mais tel que tu nous le donne il y a des erreurs.
Tu devrais regarder un validateur de json comme JSONLint pour corriger le fichier en entrée.
La confiance n'exclut pas le contrôle
je veux lire le fichier et en même temps j’enlève le deux entête et créer les tables par ces deux entête et ses attributs l'un de l'autre,
comment je fais pour l'avoir?
merci
jayzman