我从Web服务接收JSON数据,我想将其转换为Java对象。方法很多,但我找不到任何可以处理我在json中收到的可变数组键。
JSON示例:
{
"total": 2,
"last": "AAAI9Zgh",
"results": {
"67701510/2/1150671": {
"attributes": {
"200": "11444413213123",
"201": "Frank"
},
"id": "67701510/2/1150671"
},
"76701410/3/1330671": {
"attributes": {
"200": "11666613213123",
"201": "Mary"
},
"id": "76701410/3/1330671"
}
}
}
在结果中有2个对象。每个对象的名称是对象的ID,因此它是可更改的。 像这样的方法
返回新的Gson()。fromJson(json,clazz);
无效。
我想在每个对象中获取属性和 id 数据。
有人可以提供一些方法吗?
答案 0 :(得分:1)
如果您的JSON中有动态密钥,那么它们可以映射为Map<String, Object>
。
假设您有一个包含结果属性的类Result
,您只需在GSON映射中使用Map<String, Result>
。
答案 1 :(得分:0)
你可以使用jackson一个java库并将JSON字符串转换为java Map。
ObjectMapper mapper = new ObjectMapper()
Map parsedJson = mapper.readValue(json,Map.class)
然后,parsedJson变量将是一个包含已解析的json的Map。
很抱歉没有在GSON中显示示例,我对这个库不熟悉。