一尘不染

Jackson:有没有办法直接将POJO序列化为treemodel?

json

我正在寻找一种将POJO直接转换为JacksonTreeModel的方法。我知道存在从POJO到JSON-String的转换,并且支持TreeModel到JSON-String的转换—但是我正在寻找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();

任何人?


阅读 247

收藏
2020-07-27

共1个答案

一尘不染

回答我自己的问题:

JsonNode node = objectMapper.valueToTree(map);
2020-07-27