2015-06-02 12 views
8

Wie würde ich ein Array wie folgt in Android analysieren?Parse JSON Array ohne Schlüssel in Android

[ 
5, 
10, 
15, 
20 
] 

Wie Sie sehen können, keine Taste gibt es das Array definiert, wie anderes Beispiel Arrays, wie folgt aus:

{ 
"items": [ 
    5, 
    10, 
    15 
    ] 
} 

Für das zweite Array kann ich leicht ein JSONObject machen und einfach Verwenden Sie:

Aber wie offensichtlich ist, gibt es keinen Schlüssel für das erste Array. Wie sollte man das machen? Ist es sogar mit Standard-Android-Bibliotheken möglich?

Antwort

11

Haben Sie versucht, dies zu tun?

try { 
    // jsonString is a string variable that holds the JSON 
    JSONArray itemArray=new JSONArray(jsonString); 
    for (int i = 0; i < itemArray.length(); i++) { 
     int value=itemArray.getInt(i); 
     Log.e("json", i+"="+value); 
    } 
} catch (JSONException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
+0

Würde dies nicht die zweite JSON-Datei analysieren? Ich entschuldige mich, wenn meine Frage auf eine verwirrende Weise geschrieben wurde. Ich möchte die erste JSON-Datei analysieren, die ohne die "Elemente" -Taste. Würde das bedeuten, dass mein 'JSONArray' nur auf die JSON-Datei eingestellt wäre, die ich bekomme? –

+1

Ja, dies würde die zweite JSON-Datei analysieren. Es tut mir leid, dass ich deine Frage nicht verstanden habe. Um das erste JSONArray zu erhalten, würden Sie etwas wie 'JSONArray itemArray = new JSONArray (dein_stringname); 'wo' dein_string_name' ist eine String-Variable, die Ihre JSON-Datei enthält (ich nehme an, es ist eine Zeichenkette) und dann der Rest sein das Gleiche. –

+1

Perfekt, gerade versucht es und es funktioniert wie vorgesehen. Wenn es Ihnen nichts ausmacht, können Sie Ihre Antwort so ändern, dass sie der Frage für zukünftige Leser/Referenzen entspricht? Ich werde es danach akzeptieren. –

0

Betrachten Foreach Version:

try { 
    JSONArray itemArray=jsonObject.getJSONArray("items"); 
    for (var item : itemArray) { 
     System.out.println(item); 
    } 
} catch (JSONException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
0

Sie können wie so das Array String an den JSONArray Konstruktor übergeben:

String itemsJson = "[5,10,15,20]"; 
JSONArray itemArray = new JSONArray(itemsJson); 

Hinweis: Sie müssen eine try/catch oder throws für hinzufügen das Potential JSONException

0

Hier können Sie direkt auf die Daten in json array zugreifen.

JSONArray itemArray = jsonObject.getJSONArray("items"); 

for(int i=0;i<itemarray.length;i++) 

{ 

int i = Integer.ParseInt(itemarray.get(i)); 

Log.i("Value is:::",""+i); 

}