2011-10-20 28 views
1

我需要快速分析出类似JSON的根节点象下面这样:杰克逊获取键的值从根阵列

[ 
    {"key":"foo", "value":123}, 
    {"key":"bar", "value":"Hello World!"}, 
    {"key":"far", "value":{"something":1}} 
] 

简单地说,我需要看的“钥匙”的值(即“ foo“,”bar“,”far“),以确定是否需要将POJO的”值“部分完全反序列化。

我已经尝试创建一个POJO映射的类,但是有很多开销,它特别不喜欢映射,因为我的值的内部有时是值类型,有时更多JSON。

任何想法如何我可以快速遍历键,然后把值和反序列化呢?

在此先感谢!

回答

0

您可能想要绑定为树(ObjectMapper.readTree(),给出根节点的JsonNode),遍历,然后使用ObjectMapper.readValue(valueNode)分别反序列化值?

+0

谢谢你的回答@StaxMan,你能举个例子说明我会怎么做你提到的吗? – Benny

+1

迷人的接受和downvoted组合。 :-) – StaxMan

+0

至于代码示例,最好的办法是加入邮件列表并询问其他用户现有的代码,指针。还有一个想法:即使使用POJO,也可以将“value”定义为java.lang.Object类型;它给你一个List,Map或者wrapper类型;并且也可以使用“ObjectMapper.convertValue(objectValue,ActualBeanType.class);”基于你所看到的“关键”价值。 – StaxMan