我正在尝试遍历以下 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);
}
}
打印
a b c
a1 b2 c3
我不知道您的代码片段中 msg
的来源。
关于Java循环遍历Json数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19018509/