2013-09-26 9 views
15

Ich versuche, über die folgenden JSON SchleifeJava-Schleife über JSON-Array?

{ 
    "dataArray": [{ 
     "A": "a", 
     "B": "b", 
     "C": "c" 
    }, { 
     "A": "a1", 
     "B": "b2", 
     "C": "c3" 
    }] 
} 

Was ich so weit gekommen:

JSONObject jsonObj = new JSONObject(json.get("msg").toString()); 

for (int i = 0; i < jsonObj.length(); i++) { 
    JSONObject c = jsonObj.getJSONObject("dataArray"); 

    String A = c.getString("A"); 
    String B = c.getString("B"); 
    String C = c.getString("C"); 

} 

Irgendwelche Ideen?

Antwort

28

In Ihrem Code ist das Element dataArray ein Array von JSON-Objekten und kein JSON-Objekt. Die Elemente A, B und C sind Teil der JSON-Objekte innerhalb des-JSON-Arrays.

Sie benötigen

des Arrays iterieren
public static void main(String[] args) throws Exception { 
    String jsonStr = "{   \"dataArray\": [{    \"A\": \"a\",    \"B\": \"b\",    \"C\": \"c\"   }, {    \"A\": \"a1\",    \"B\": \"b2\",    \"C\": \"c3\"   }]  }"; 

    JSONObject jsonObj = new JSONObject(jsonStr); 

    JSONArray c = jsonObj.getJSONArray("dataArray"); 
    for (int i = 0 ; i < c.length(); i++) { 
     JSONObject obj = c.getJSONObject(i); 
     String A = obj.getString("A"); 
     String B = obj.getString("B"); 
     String C = obj.getString("C"); 
     System.out.println(A + " " + B + " " + C); 
    } 
} 

druckt

a b c 
a1 b2 c3 

Ich weiß nicht, wo msg aus im Code-Schnipsel kommen.