Java loop over Json array?
In your code the element dataArray
is an array of JSON objects, not a JSON object itself. The elements A
, B
, and C
are part of the JSON objects inside the dataArray
JSON array.
You need to iterate over the array
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);
}
}
prints
a b c
a1 b2 c3
I don't know where msg
is coming from in your code snippet.
Java Docs to the rescue:
You can use http://www.json.org/javadoc/org/json/JSONObject.html#getJSONArray(java.lang.String) instead
JSONArray dataArray= sync_reponse.getJSONArray("dataArray");
for(int n = 0; n < dataArray.length(); n++)
{
JSONObject object = dataArray.getJSONObject(n);
// do some stuff....
}