简体   繁体   English

如何将JSONArray分配给变量?

[英]How to assign JSONArray to variable?

I'm new to Java and I have a problem : 我是Java新手,但有一个问题:

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

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

I would like to assign data.getJSONArray("childrens") to a variable list , but I have an error: 我想将data.getJSONArray("childrens")分配给变量list ,但出现错误:

java.lang.ClassCastException: org.json.JSONArray cannot be cast to java.util.List java.lang.ClassCastException:org.json.JSONArray无法转换为java.util.List

How can I do this? 我怎样才能做到这一点?

I would like to iterate over JSON Array. 我想遍历JSON数组。

You can't data.getJSONArray("childrens") returns an object of type org.json.JSONArray . 您无法data.getJSONArray("childrens")返回org.json.JSONArray类型的对象。

However, you can iterate over a JSONArray : 但是,您可以遍历JSONArray:

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

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

JSONObject only contains JSONArray , not List . JSONObject仅包含JSONArray ,而不包含List You have to transform it manually: 您必须手动对其进行转换:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM