首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android:将JSONObject转换为JSONArray返回null

Android:将JSONObject转换为JSONArray返回null
EN

Stack Overflow用户
提问于 2018-07-05 04:49:57
回答 2查看 84关注 0票数 0

我的代码:

代码语言:javascript
复制
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

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

代码语言:javascript
复制
JSONObject data = {"result":{"a":[{"artist":"Money",...
JSONArray tasks = data.optJSONArray("result");

更新:

我的主要代码是:

代码语言:javascript
复制
// 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){
    ....
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-05 04:52:39

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

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

在本例中,"result"是一个JSONObject,所以改写如下:

代码语言:javascript
复制
JSONObject tasks = obj.optJSONObject("result");
票数 1
EN

Stack Overflow用户

发布于 2018-07-05 05:11:52

结果(a,b)位于根对象内的对象‘JSONArray’中,因此您必须在层次结构中导航才能获取它:

代码语言:javascript
复制
JSONObject obj = new JSONObject(data.toString());
JSONObject result = obj.getJSONObject("result");
JSONArray tasksA = result.optJSONArray("a");
JSONArray tasksB = result.optJSONArray("b");

请注意,每个'a‘和'b’是要检索的不同JSONArray。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51180601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档