如何解析具有未知密钥的JSON对象?

时间:2014-10-23 10:23:58

标签: java json

我目前正在从第三方API中找回json,看起来像这样

{
    success: true,
    data: {
        acdc-key1: [{
            id: acdc-key1,
            othervar: stuff,
            foo: bar
        }],
        r2d2-key2: [{
            id: r2d2-key2,
            othervar: thing,
            foo: mu
        }]
    }
}

等。

基本上它是一个具有对象的对象,该对象具有键,并且这些键具有对象数组。

我正在使用mapper将API的响应转换为JAva对象,但我不确定如何构造我的类以便可以正确映射它。

主要问题是长数组的键总是会改变而不是设置字段。

2 个答案:

答案 0 :(得分:3)

你可以使用Jackson并用它来创建一个JSON解析树。这将是一组java对象,它们代表JSON,但是作为对象和属性的树,而不是POJO。

然后你可以遍历树来查找你特别感兴趣的属性。你甚至可以创建一个包装类,它包含你感兴趣的属性的getter和setter,但是在内部使用对象树来访问这些值在原始的JSON中。

这里似乎有一个相关的问题 - How do you tree walk JSON via Jackson 2 JsonNode?

答案 1 :(得分:0)

您总是可以使用例如Gson(googles库)从任何json获取Map对象。 只从那张地图中获取你确定知道的那些钥匙......