内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
我的代码:
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){ .... }
用以下代码试试:
JSONObject obj = new JSONObject(data.toString()); JSONObject result = obj.getJSONObject("result"); JSONArray tasksA = result.optJSONArray("a"); JSONArray tasksB = result.optJSONArray("b");
当你看到"key": { ... },这意味着key是JSONObject。
当你看到"key": [ ... ],这意味着key是JSONArray。
在你的情况下,"result"是JSONObject,所以用这个代替:
JSONObject tasks = obj.optJSONObject("result");