开发者

Jackson: is there a way to serialize POJOs directly to treemodel?

开发者 https://www.devze.com 2023-03-26 14:25 出处:网络
I\'m looking for a way to directly convert some POJO to a Jackson TreeModel. I know that a translation from POJO-to-JSON-String exists, and TreeModel-to-JSON-String is supported — hovewer I am looki

I'm looking for a way to directly convert some POJO to a Jackson TreeModel. I know that a translation from POJO-to-JSON-String exists, and TreeModel-to-JSON-String is supported — hovewer I am looking for a POJO-to-TreeModel translation. Is there a way?

The use-case is as follows:

  • Server-side templating is done with the Java implementation of Mustache. This uses Jackson's TreeModel.
  • After that, I need a slimmed-down version of the TreeModel on the client-side, so I want to be able to first filter the TreeModel, serialize that to JSON, then send it to the client-side for further processing.

This, ideally, involves two serialization steps. However, in my workaround, I am currently using three — which you can see here:

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 Js开发者_高级运维onFactory().createJsonGenerator(w), tree);
json = w.toString();
w.close();

Anyone?


To answer my own question:

JsonNode node = objectMapper.valueToTree(map);
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号