如何使用Gson Library对嵌套的JSON对象进行排序?

时间:2017-01-28 01:42:20

标签: android json gson

我正在尝试解析看起来像下面数据的JSON数据。 我已经成功了一些领域,但我试图在“条款”下的“类别”下的“0”下获得“名称”。

endl

这是我解析数据的方式:

[
    {
    "ID": 1710,
    "status": "publish",
    "type": "post",
    "content": "Lorem ipsum",
    "parent": null,
    "format": "standard",
    "modified_tz": "UTC"
    },
    "featured_image": {
    "ID": 1713,
    "title": "km",
    "status": "inherit",
    "type": "attachment",
    }
    }
    }
    }
    },
    "terms": {
    "category": [    <<<<---AM REFERENCING HERE--->>>>>
    {
    "ID": 2,
    "name": "Entertainment",
    "slug": "entertainment",
    "taxonomy": "category",
    "parent": null,
    "count": 30,
    }
    ]

    }
    }
    ]

请帮助我,我做错了什么?

2 个答案:

答案 0 :(得分:0)

我找到了解决方案:

自&#34;类别&#34; tag包含一个JSON对象数组(在本例中为单个对象)。

我投出&#34;类别&#34;成为一个arraylist

Map<String, Object> terms = (Map<String, Object>) mapPost.get("terms");
ArrayList category = new ArrayList();
category = ((ArrayList) terms.get("category")); //<--Cast to ArrayList
zero  = (Map<String, Object>) category.get(0);

然后我得到了&#34;名字&#34;通过执行标记:

String tag = (String) zero.get("name")

答案 1 :(得分:0)

您提供的代码甚至无法编译(损坏的Gson构造函数调用; Java不提供List<K,V> ...)。列表也不能在运行时转换为映射。 JSON也被破坏了,但是,假设您提供了一些代码,我想您想要解析位于name的{​​{1}}:

$[(index)].terms.category[0].name

您不需要反序列化您将要遍历的每个嵌套对象(从性能的角度来看这更有效):只需遍历JSON树。