2016-07-28 11 views
0

hat auf der Website für eine Weile gesucht, und ich komme nirgends.Wie zu beheben, JSONException: Kein Wert für "1"

I eine Android App ist zu schaffen, das eine Liste von Werten aus einer mySQL DB über PHP erhält, und das Ergebnis der Rückkehr in einem JSON Objekt codiert:

{"error":false,"values":{"1":{"name":"This is a string"}, "2":{...}}} 

Ich Abrufen das JSON Objekts in Java wie so:

JSONObject jObj = new JSONObject(response); 
boolean error = jObj.getBoolean("error"); 

if (!error) { 
    JSONObject values = jObj.getJSONObject("values"); 
    Iterator<?> keys = values.keys(); 

    while(keys.hasNext()) { 
     String key = (String)keys.next(); 
     JSONObject value = jObj.getJSONObject(key); 
     ... 
    } 

Sein an dem Punkt vor den Ellipsen, wo ich die Ausnahme erhalten:

org.json.JSONException: No value for "1" 

Mache ich etwas völlig Dummes oder was, alles sieht für mich ok aus. Ich habe mehrere verschiedene Dinge ausprobiert, aber immer das gleiche Problem. Was ich letzten Endes tun möchte, ist, den Namen obj zu bekommen und ihn zu einer Liste von Strings hinzuzufügen. Aber ich komme nicht über diesen Punkt hinaus.

Jede Hilfe oder einen Stoß in die richtige Richtung wäre dankbar.

+1

Sollten Sie Wert mit __values.getJSONObject (key) lesen __ und nicht von __jObj__. – harism

+0

Haben Sie Zugriff auf PHP API, um die Daten zu erhalten? Da es besser ist, Werte als Array anstelle von Objekt zu erstellen, können Sie problemlos darüber iterieren. –

+0

Ich habe geschrieben, bitte versuchen Sie es. –

Antwort

1
JSONObject value = jObj.getJSONObject(key); 

Ersetzen mit

JSONObject value = values.getJSONObject(key); 
+0

Ich fühle mich wie ein Idiot .. Cheers für die Rückgabe meiner Gesundheit :) – smurfMT

0
JSONObject jObj = new JSONObject(response); 
boolean error = jObj.getBoolean("error"); 

if (!error) { 
    JSONObject values = jObj.getJSONObject("values"); 
    Iterator<?> keys = values.keys(); 

    while(keys.hasNext()) { 
     String key = (String)keys.next(); 
     JSONObject value = values.getJSONObject(key); 
     ... 
    } 
Verwandte Themen