Json数组上的Java循环?
我试图循环以下JSON
{ "dataArray": [{ "A": "a", "B": "b", "C": "c" }, { "A": "a1", "B": "b2", "C": "c3" }] }
到目前为止我得到了什么:
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"); }
有任何想法吗?
在您的代码中,元素dataArray
是JSON对象的数组,而不是JSON对象本身。 元素A
, B
和C
是dataArray
JSON数组中JSON对象的一部分。
你需要迭代数组
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); } }
版画
abc a1 b2 c3
我不知道msg
来自你的代码片段。
Java Docs救援:
您可以使用http://www.json.org/javadoc/org/json/JSONObject.html#getJSONArray(java.lang.String)代替
JSONArray dataArray= sync_reponse.getJSONArray("dataArray"); for(int n = 0; n < dataArray.length(); n++) { JSONObject object = dataArray.getJSONObject(n); // do some stuff.... }