2013-08-15 5 views
-1

Je suis un débutant dans Android, je suis en train d'obtenir les informations de ce format JSON:analyse syntaxique JSON Android

{ 
    "items": [ 
     { 
      "id": "32", 
      "monaie": "USD", 
      "date": "2013-08-15", 
      "achat": " 8.45766", 
      "vente": "8.57466" 
     }, 
     { 
      "id": "33", 
      "monaie": "CAD", 
      "date": "2013-08-15", 
      "achat": " 8.19735", 
      "vente": "8.29833" 
     }, 
     { 
      "id": "34", 
      "monaie": "EUR", 
      "date": "2013-08-15", 
      "achat": " 11.0547", 
      "vente": "11.19249" 
     }, 
     { 
      "id": "35", 
      "monaie": "JPY", 
      "date": "2013-08-15", 
      "achat": " 8.43443", 
      "vente": "8.54948" 
     }, 
     { 
      "id": "36", 
      "monaie": "GBP", 
      "date": "2013-08-15", 
      "achat": " 12.9400", 
      "vente": "13.10321" 
     }, 
     { 
      "id": "37", 
      "monaie": "USD", 
      "date": "2013-08-15", 
      "achat": " 8.45766", 
      "vente": "8.57466" 
     }, 
     { 
      "id": "38", 
      "monaie": "CAD", 
      "date": "2013-08-15", 
      "achat": " 8.19735", 
      "vente": "8.29833" 
     }, 
     { 
      "id": "39", 
      "monaie": "EUR", 
      "date": "2013-08-15", 
      "achat": " 11.0547", 
      "vente": "11.19249" 
     }, 
     { 
      "id": "40", 
      "monaie": "JPY", 
      "date": "2013-08-15", 
      "achat": " 8.43443", 
      "vente": "8.54948" 
     }, 
     { 
      "id": "41", 
      "monaie": "GBP", 
      "date": "2013-08-15", 
      "achat": " 12.9400", 
      "vente": "13.10321" 
     } 
    ] 
} 

C'est ce que je l'ai utilisé, mais il ne fonctionne pas:

public static Devise getDevise(String data) throws JSONException { 
    Devise devise = new Devise(); 
    JSONObject jObj = new JSONObject(data); 
    JSONArray jArr = jObj.getJSONArray(0); 
    JSONObject itemobj = jArr.getJSONObject(0); 
    devise.nom = (getString("monaie", itemobj)); 
    devise.achat = (getString("achat", itemobj)); 
    devise.vente = (getString("vente", itemobj)); 
    return devise; 
} 
+2

Veuillez indiquer (toujours) ce que "ne fonctionne pas" signifie. Que voyez-vous quand vous le faites? Compiler l'erreur? Erreur d'exécution? Exception? Quel est le résultat inattendu? Que dites-vous quand vous dites que ça ne marche pas? –

+0

regarder à travers ce http://stackoverflow.com/questions/3605077/how-can-i-parse-this-json-in-android et http://stackoverflow.com/questions/12152468/parse-this-json- in-android – surhidamatya

+0

vérifiez aussi ce lien http://www.androidhive.info/2012/01/android-json-parsing-tutorial/ Je suis sûr que vous obtiendrez votre réponse. – surhidamatya

Répondre

1

{ représente le nœud d'objet JSON

[ REPRÉSENTE noeud tableau JSON

Votre JSON

{    // json object 
    "items": [  // json array. array of items 
     {   // json object 
      "id": "32",  
      "monaie": "USD", 
      "date": "2013-08-15", 
      "achat": " 8.45766", 
      "vente": "8.57466" 
     }, 

Pour Parse

JSONObject jObj; 
    try { 
     jObj = new JSONObject(data); 
     JSONArray jArr = jObj.getJSONArray("items"); 
     for(int i=0;i<jArr.length();i++) 
     { 
      JSONObject itemobj = jArr.getJSONObject(i); 
      String item = itemobj.getString("id"); 
      String monaie = itemobj.getString("monaie"); 
      String date = itemobj.getString("date"); 
      String achat = itemobj.getString("achat"); 
      String vente =itemobj.getString("vente"); 
     } 
    } catch (JSONException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
1

Vous devez écrire le nom du tableau pour le définir en premier. J'ai écrit comment vous allez obtenir les données des objets et des tableaux du JSON que vous avez donné.

JSONObject jo = new JSONObject(data); 
    JSONArray rootArray= jo.getJSONArray("items"); 
    int rootArrayLength=rootArray.length(); 
    for(int i=0;i<rootArrayLength;i++){ 
     int id = rootArray.getJSONObject(i).getInt("id"); 
     String mon = rootArray.getJSONObject(i).getString("monaie"); 
     // do same for other variables as well according to their type and your intention. 
    } 
1

Si vous voulez le premier objet

JSONObject jobject = new JSONObject(data); 
JSONArray DeviseArray= jo.getJSONArray("items"); 
JSONObject firstobject = DeviseArray.getJSONObject(0); 
Devise devise = new Devise(); 
devise.nom = firstobject.getString("monaie"); 
devise.achat = firstobject.getString("achat"); 
devise.vente = firstobject.getString("vente");