【问题标题】:Reading JSON child object读取 JSON 子对象
【发布时间】:2014-10-25 09:31:24
【问题描述】:

我有以下 JSON 内容:

{
    "query": {
        "pages": {
            "7931046": {
                "pageid": 7931046,
                "ns": 0,
                "title": "Tang Aidi",
                "revisions": [
                    {
                        "contentformat": "text/x-wiki",
                        "contentmodel": "wikitext",
                        "*": "SOME TEXT"
                    }
                ]
            }
        }
    }
}

我尝试从中读取“SOME TEXT”字符串。

我在尝试读取“页面”对象时已经被卡住了。我想它应该是一个 JSONObject 但它把我扔了

JSONObject["pages"] not found

使用以下代码:

            JSONObject obj = new JSONObject(sEntireContent);
            JSONObject oParse=(JSONObject) obj.get("query");
            //JSONArray oPages=oParse.getJSONArray("pages");
>>>>>>>>>>  JSONObject oPages=(JSONObject) obj.get("pages");
            JSONObject firstPage=(JSONObject) oPages.get(0);
            JSONObject oRevisions=(JSONObject) firstPage.get("revisions");
            sWikitext=oRevisions.getString ("*");

然后我不知道如何读取一个我不知道名称的子对象。在我的示例中,“7931046”是一个随机/序列号

【问题讨论】:

  • 你用什么 JSON 库来解析?

标签: java json parsing


【解决方案1】:

如果 JSONObject 有一个或多个未知键作为子元素,您可以像这样遍历它们:

JSONObject pages = obj.get("pages");
Iterator iterator = pages.keys();
while(iterator.hasNext()){
    String key = (String)iterator.next();
    JSONObject page = pages.getJSONObject(key);

    //do stuff with the page...
}

【讨论】:

    【解决方案2】:

    去寻找相对于父母

    JSONObject oPages = oParse.getJSONObject("pages");

    【讨论】:

    • 当然可以。你说的对。我太笨了 :-) 放弃 1. 目前我不确定我应该接受谁的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-24
    • 2013-03-06
    • 2018-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多