我成功地解析JSON它看起来像这样,在这种特定情况下表示具有2项的数组:这是一个有效的JSON?
{
"items": [
{
"id": 1,
"name": "John"
},
{
"id": 2,
"name": "Mark"
}
]
}
但是,我想不出如何分析一个这样的:
{
"items": {
"1": {
"id": 1,
"name": "John"
},
"2": {
"id": 2,
"name": "Mark"
}
}
}
正如你所看到的,第二个json与前一个非常相似,除了在items
之后它以“{”开头,这意味着它是一个对象而不是数组,但是我需要该数据来对待数组。
这是一个无效的json,或者我失去了一些东西?
编辑:
好吧,明白了。 json是有效的。
请让我重新表达这个问题。 我实际上在寻找的是如何将第二个json放入项目列表中。 某处在代码我这样做:
ItemsResponse itemsResponse = JsonMarshaller.fromJson(ItemsResponse.class, response);
和ItemsResponse类:
public class ItemsResponse {
private List<Item> items;
// getters and setters
}
,但它不能与说,JSON的开始是一个对象,而不是一个数组异常。
SOLUTION:
正确的方法是使用Map
代替List
:
public class ItemsResponse {
private Map<String, Item> items;
// getters and setters
}
两人都是有效的Json。如果你想迭代,第一个没问题。 –
用于检查有效的josn ..检查http://www.jsoneditoronline.org/ –
JSON是正确的请参阅http://jsonviewer.stack.hu/ –