Récupérer des valeurs d'un document JSON sur Java

JSON se base sur deux structures:
  • Une collection de couples nom/valeur. Divers langages la réifient par un objet, un enregistrement, une structure, un dictionnaire, une table de hachage, une liste typée ou un tableau associatif.
  • Une liste de valeurs ordonnées. La plupart des langages la réifient par un tableau, un vecteur, une liste ou une suite.
  • Pour accèder aux valeurs d'un document JSON depuis un code Java, nous utiliserons les bibliothèques JSON, EZMorph, Apache et SLF4J, à télécharger ici.
    Le document JSON ci-dessous est un simple exemple cité sur Wikipédia, il servira comme exemple pour avoir les valeurs des clés "value" et "onclick"
       {
           "menu": {
               "id": "file",
               "value": "File",
               "popup": {
                   "menuitem": [
                       { "value": "New", "onclick": "CreateNewDoc()" },
                       { "value": "Open", "onclick": "OpenDoc()" },
                       { "value": "Close", "onclick": "CloseDoc()" }
                   ]
               }
           }
       }
      
       import net.sf.json.*;
    
       public static void main(String[] args) {
              //Document JSON
              String JSON = "{\"menu\": {\"id\": \"file\",\"value\": \"File\",\"popup\": {\"menuitem\": [{ \"value\": \"New\", \"onclick\": \"CreateNewDoc()\" },{ \"value\": \"Open\", \"onclick\": \"OpenDoc()\" },{ \"value\": \"Close\", \"onclick\": \"CloseDoc()\" }]}}}";
              
              JSONObject json = (JSONObject) JSONSerializer.toJSON(JSON); 
              JSONObject response = json.getJSONObject("menu");
              JSONObject folder_content = response.getJSONObject("popup");
              JSONArray files = folder_content.getJSONArray("menuitem");
              for(int i=0; i‹files.size();i++){
                  System.out.println(files.getJSONObject(i).getString("value")+"\t"+files.getJSONObject(i).getString("onclick"));
              }
          }
      
    En sortie de console...
       New CreateNewDoc()
       Open OpenDoc()
       Close CloseDoc()
      

    Aucun commentaire :

    Enregistrer un commentaire