[英]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.