杰克逊:有没有办法将POJO直接序列化为树模型?

时间:2011-08-06 14:50:37

标签: json serialization jackson pojo

我正在寻找一种将某些POJO直接转换为Jackson TreeModel的方法。我知道存在从POJO到JSON-String的转换,并且支持TreeModel到JSON-String - hovewer我正在寻找POJO到TreeModel的转换。有办法吗?

用例如下:

  • 服务器端模板是使用Mustache的Java实现完成的。这使用Jackson的TreeModel。
  • 之后,我需要在客户端使用TreeModel的精简版本,所以我希望能够首先过滤TreeModel,将其序列化为JSON,然后将其发送到客户端进行进一步处理。

理想情况下,这涉及两个序列化步骤。但是,在我的解决方法中,我目前正在使用三个 - 您可以在这里看到:

map = // a map of  pojos with jackson annotations

//pojo >> JSON
StringWriter w = new StringWriter();    
objectmapper.writeValue(new JsonFactory().createJsonGenerator(w), map);
String json = w.toString();
w.close();

//JSON >> Treemodel
JsonNode tree = GenericJcrDTO.mapper.readTree(json);
//filter tree here

//treemodel >>JSON
StringWriter w = new StringWriter();
GenericJcrDTO.mapper.writeValue(new JsonFactory().createJsonGenerator(w), tree);
json = w.toString();
w.close();

任何?

1 个答案:

答案 0 :(得分:46)

回答我自己的问题:

JsonNode node = objectMapper.valueToTree(map);