我是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数组。
答案 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);
}