我正在尝试遍历以下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");
}
有什么想法吗?
答案 0 :(得分:42)
在您的代码中,元素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);
}
}
打印
a b c
a1 b2 c3
我不知道您的代码段中的msg
来自何处。
答案 1 :(得分:4)
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....
}