Fichier Json à traiter et recuperer ses parametres
jayzman
Messages postés
54
Statut
Membre
-
jayzman1 Messages postés 7 Statut Membre -
jayzman1 Messages postés 7 Statut Membre -
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. |
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 :
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