Fichier Json à traiter et recuperer ses parametres

Fermé
jayzman Messages postés 46 Date d'inscription mercredi 18 novembre 2015 Statut Membre Dernière intervention 5 février 2016 - Modifié par KX le 19/01/2016 à 22:28
jayzman1 Messages postés 4 Date d'inscription mardi 15 décembre 2015 Statut Membre Dernière intervention 20 janvier 2016 - 20 janv. 2016 à 06:26
Bonjour à vous,

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:

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
Modifié par KX le 19/01/2016 à 22:50
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
0
jayzman1 Messages postés 4 Date d'inscription mardi 15 décembre 2015 Statut Membre Dernière intervention 20 janvier 2016
20 janv. 2016 à 06:26
bonjour KX,merci pour votre réponse,
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
0