Java循环遍历Json数组?

标签 java json

我正在尝试遍历以下 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 对象本身。 ABC 元素是 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/

相关文章:

java - Eclipse Checkstyle 禁用 "Lline has trailing spaces"

PHP JSON Highcharts 加载数据库结果

python - 在 Python 中循环遍历 JSON 数组

java - StringBuilder 与 StringBuffer - 需要助记符

java - 后台线程阻止 Tomcat 7 应用程序启动

java - 我应该如何使用 2 个线程从数据库中收集数据?

java - 使用双数组的最佳实践

java - 如何使用 swipeRefreshLayout 更新 fragment 中的新 json 数据

c# - 将 JSON 转换为对象,然后根据对象类型执行不同的操作

json - 无法在 json --data 中使用变量