将不可预测的密钥从JSON映射到POJO

时间:2012-08-27 15:15:10

标签: json jackson

我正在使用Jackson JSON库将JSON流映射到POJO中。

我的JSON密钥具有不可预知的名称 即

{
  "Random_ID": 
   {
        "Another_Random_ID":  
        {
            "some_key": "value"
            "some_key1": "value1"
        }
   }
   ...  
}

我想将此请求映射到POJO(具有相同的结构),但是映射器将失败,因为没有这样的setXXX(其中XXX是random_id - 因为我无法预测名称)。

将此请求映射到相应对象的最佳方法是什么,而无需使用createJsonParser手动解析它。

1 个答案:

答案 0 :(得分:4)

如果名称不可预测,那么POJO就不可能了。

但您可以使用树模型,例如:

JsonNode root = objectMapper.readTree(jsonSource);

并将其作为逻辑树进行访问。此外,如果您确实要转换树(或任何子树,由子树的根节点标识),您可以执行以下操作:

MyPOJO pojo = objectMapper.treeToValue(node, MyPOJO.class);

然后回到树

JsonNode node = objectMapper.valueToTree(pojo);