将具有可更改数组键的JSON转换为Java对象

时间:2017-05-04 13:57:24

标签: java json gson

我从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 数据。

有人可以提供一些方法吗?

2 个答案:

答案 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中显示示例,我对这个库不熟悉。

相关问题