如何将JSONArray赋值给变量?

时间:2018-06-17 18:01:27

标签: java

我是Java的新手,我遇到了一个问题:

JSONObject data = new JSONObject(json);
List<String> list = (List<String>) data.getJSONArray("childrens");

for (String item : list) {
       Log.d("DEBUG", item);
}

我想将data.getJSONArray("childrens")分配给变量list,但我有一个错误:

  

java.lang.ClassCastException:org.json.JSONArray无法强制转换为   java.util.List的

我该怎么做?

我想迭代JSON数组。

2 个答案:

答案 0 :(得分:3)

您无法data.getJSONArray("childrens")返回org.json.JSONArray类型的对象。

但是,您可以遍历JSONArray:

    JSONArray jArray = data.getJSONArray("childrens");

    for (int i = 0; i < jArray.length(); i++) {
        JSONObject jb = jArray.getJSONObject(i);
        Log.d("DEBUG", jb);
    }

答案 1 :(得分:1)

JSONObject仅包含JSONArray,而不是List。你必须手动转换它:

JSONObject data = new JSONObject(json);
JSONArray jsonArray = data.getJSONArray("childrens");
for (Object o : jsonArray) {
    String child = (String)o;
    Log.d("DEBUG", child);
}