当前位置: 首页 > 面试题库 >

JSONObject中的多个JSONObject的Android JSON解析

胡元忠
2023-03-14
问题内容

我有一个来自服务器的JSON字符串,它看起来像这样:

{
    "categories": {
        "0": {
            "term_id": "247",
            "name": "Content Curation"
        },
        "1": {
            "term_id": "50",
            "name": "Content Marketing"
        },
        "2": {
            "term_id": "2",
            "name": "Curation"
        },
        "3": {
            "term_id": "246",
            "name": "Inbound Marketing"
        },
        "4": {
            "term_id": "47",
            "name": "Marketing"
        },
        "5": {
            "term_id": "4",
            "name": "News Curation"
        },
        "6": {
            "term_id": "36",
            "name": "SEO"
        },
        "8": {
            "term_id": "248",
            "name": "Wordpress Content Curation"
        }
    }
}

我的任务是获取“ term_id”和“ name”字段的值。我曾经使用以下代码从当前JSONObject中获取“类别”对象:

JSONObject jObject = new JSONObject(responceData);
JSONObject categoryObject = jObject.getJSONObject("categories");
JSONArray  jarray = new JSONArray("["+categoryObject.toString().substring(1,categoryObject.toString().length() - 1) + "]");

for(int i=0;i<jarray.length();i++)
{
     JSONObject jobj = jarray.getJSONObject(i);
     String term_id=jobj.getString("term_id");
     String name=jobj.getString("name");
}

categoryObject看起来像这样:

{
    "0": {
        "term_id": "247",
        "name": "Content Curation"
    },
    "1": {
        "term_id": "50",
        "name": "Content Marketing"
    },
    "2": {
        "term_id": "2",
        "name": "Curation"
    },
    "3": {
        "term_id": "246",
        "name": "Inbound Marketing"
    },
    "4": {
        "term_id": "47",
        "name": "Marketing"
    },
    "5": {
        "term_id": "4",
        "name": "News Curation"
    },
    "6": {
        "term_id": "36",
        "name": "SEO"
    },
    "8": {
        "term_id": "248",
        "name": "Wordpress Content Curation"
    }
}

但是在那之后,我不知道如何获得这些领域。有什么方法可以从JSONObject获取所有JSONObject子级吗?

如果您有源代码或可以举一个例子,请与我分享。


问题答案:

在这里,您可以检索所有json数据,询问特定的键和innerKey以获取所需的内容,干杯

    try
    {   
        String jsonString="";//your json string here
        JSONObject jObject= new JSONObject(jsonString).getJSONObject("categories");
        Iterator<String> keys = jObject.keys();
        while( keys.hasNext() )
        {
            String key = keys.next();
            Log.v("**********", "**********");
            Log.v("category key", key);
            JSONObject innerJObject = jObject.getJSONObject(key);
            Iterator<String> innerKeys = innerJObject.keys();
            while( innerKeys.hasNext() )
            {
                String innerKkey = keys.next();
                String value = innerJObject.getString(innerKkey);
                Log.v("key = "+key, "value = "+value);
            }
        }
    }
    catch (JSONException e)
    {   e.printStackTrace();    }


 类似资料:
  • 问题内容: 我从两个不同的来源使用了一些JSON,最后得到两个s,我想将它们组合为一个。 数据: 使用http://json.org/java/库的代码: 因此,在这种情况下,我想将和组合在一起,以制作一个全新的产品或彼此结合。除了将它们拉开并分别加s 之外,还有其他想法吗? 问题答案: 如果要使用两个键Object1和Object2创建新对象,则可以执行以下操作: 如果要合并它们,例如顶级对象有

  • 问题内容: 这是我的第一篇文章。作为一名崭新的Android开发人员,我几乎每天都阅读有关各种主题的SO帖子,但是对于这个问题,我没有从Google或SO那里获得任何帮助。 到目前为止,我的研究是: 搜索这个问题比平常要困难,因为搜索引擎似乎并不关心区分大小写,这在此问题中至关重要。搜索Google只会给我指向类本身,旧文章或完全不相关的文章的链接。我得到的最接近的是JSONArray vsJSO

  • 问题内容: 我在将json解析到我的android应用中时遇到了一些问题。 这是我的json文件的样子: 如您所见,这种结构有点奇怪。我不知道如何在我的应用程序中读取该数据。我注意到那些都是对象而不是数组:/ 问题答案: 更新2018 5年后,在Android上解析json有了新的“标准”。它被称为moshi,人们可以认为它是GSON 2.0。它非常相似,但已修复了设计错误,这是您开始使用它时遇到

  • 我有以下JSONObject: 我对使用JSON非常陌生。我需要的是JSON对象数组,每个键都是Question5、Question4等,这些值就是答案。你能帮忙吗?

  • 这是我的第一个帖子。作为一名初出茅庐的Android开发者,我几乎每天都在阅读各种主题的SO帖子,但对于这个问题,我没有从谷歌那里找到任何帮助。 我到目前为止的研究: 搜索这个问题比正常情况要难,因为搜索引擎似乎不关心大小写敏感性,而大小写敏感性在这个问题中是至关重要的。搜索谷歌只给了我类本身的链接,旧文章,或者完全不相关的文章。我得到的最接近的是JSONArray和JSONObject,这是一个

  • 问题内容: 我有一个与数据库对话的servlet,然后返回一个有序(按时间排序)对象的列表。在servlet部分,我有 从日志中,我可以看到数据库以正确的顺序返回了User对象。 在前端,我有 但是顺序改变了。 我只在返回的列表很大(超过130个用户)时才注意到这一点。 我尝试使用Firebug进行调试,Firebug中的“响应选项卡”显示列表的顺序与servlet中的日志不同。 我做错了什么吗?