Android:将 JSONObject 转换为 JSONArray 返回 null



我的代码:

JSONObject data = {"result":{"a":[{"artist":"Aney","number:"1"},{"artist":"Aney","number:"2"}],"b":[{"artist":"Boney","number:"3"},{"artist":"Boney","number:"4"}], ....
JSONObject obj = new JSONObject(data.toString());
JSONArray tasks = obj.optJSONArray("result");

tasks回报null.

我尝试了以下代码,但它不起作用:

JSONObject data = {"result":{"a":[{"artist":"Money",...
JSONArray tasks = data.optJSONArray("result");

更新:

我的主要代码是:

// get data from main url and reutnr array
JSONArray tasks = data.optJSONArray("result");
if(alert){
// get data from another url and return object
JSONObject data = {"result":{"a":[{"artist":"Money",...
tasks = data.optJSONArray("result");
}
// now i use tasks in my code
if(tasks.length() > 0){
....
}

当你看到"key": { ... }时,这意味着key是一个JSONObject

当你看到"key": [ ... ],这意味着key是一个JSONArray

在您的情况下,"result"是一个JSONObject,所以写这个:

JSONObject tasks = obj.optJSONObject("result");

JSONArray (a, b( 位于根对象内部的对象"result"内,因此您必须导航 hyerarchy 才能获得它:

JSONObject obj = new JSONObject(data.toString());
JSONObject result = obj.getJSONObject("result");
JSONArray tasksA = result.optJSONArray("a");
JSONArray tasksB = result.optJSONArray("b");

请注意,每个"a"和"b"都是要检索的不同JSONArray。

最新更新