Java 如何将JSONArray分配给变量?

Java 如何将JSONArray分配给变量?,java,Java,我是Java新手,有一个问题: JSONObject data = new JSONObject(json); List<String> list = (List<String>) data.getJSONArray("childrens"); for (String item : list) { Log.d("DEBUG", item); } JSONObject数据=新的JSONObject(json); List=(List)data.getJSO

我是Java新手,有一个问题:

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

for (String item : list) {
       Log.d("DEBUG", item);
}
JSONObject数据=新的JSONObject(json);
List=(List)data.getJSONArray(“childrens”);
用于(字符串项:列表){
Log.d(“调试”,项目);
}
我想将
data.getJSONArray(“childrens”)
分配给变量
列表
,但我有一个错误:

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

我该怎么做


我想迭代JSON数组。

您不能
数据。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);
    }
JSONArray jArray=data.getJSONArray(“childrens”);
for(int i=0;i
您不能
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);
    }
JSONArray jArray=data.getJSONArray(“childrens”);
for(int i=0;i
JSONObject
仅包含
JSONArray
,不包含
列表
。您必须手动对其进行转换:

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

JSONObject
仅包含
JSONArray
,而不包含
列表
。您必须手动对其进行转换:

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

该错误准确地告诉您问题是什么,方法
.getJSONArray(…)
返回一个
org.json.JSONArray
对象,而不是
java.util.List
对象,而强制转换对象不会解决此问题。您需要创建一个JSONArray变量,将方法返回的对象分配给它,然后使用此对象可用的方法。但是如何迭代JSONArray?将告诉您可以使用哪些方法,但我将介绍如何使用
length()
get(int index)
使用for循环迭代的方法。使用JSONArray list=data.getJSONArray(“childrens”);错误的可能重复会确切地告诉您问题所在,方法
.getJSONArray(…)
返回一个
org.json.JSONArray
对象,而不是
java.util.List
对象,并且强制转换不会解决这个问题。您需要创建一个JSONArray变量,将方法返回的对象分配给它,然后使用此对象可用的方法。但是如何迭代JSONArray?将告诉您可以使用哪些方法,但我将介绍如何使用
length()
get(int index)
使用for循环迭代的方法。使用JSONArray list=data.getJSONArray(“childrens”);@HovercraftFullOfEels的可能副本将其声明为2016年的最新版本。@HovercraftFullOfEels将其声明为2016年的最新版本。