json - objectnode - Jackson: ¿hay alguna manera de serializar POJO directamente a treemodel?
jsonnode to objectnode (1)
Estoy buscando una forma de convertir directamente algunos POJO a un Jackson TreeModel . Sé que existe una traducción de POJO a JSON-String, y TreeModel-to-JSON-String es compatible - hovewer Estoy buscando una traducción POJO-to-TreeModel. ¿Hay alguna manera?
El caso de uso es el siguiente:
- Las plantillas del lado del servidor se realizan con la implementación Java de Moustache. Esto usa el TreeModel de Jackson.
- Después de eso, necesito una versión reducida del TreeModel en el lado del cliente, por lo que quiero poder filtrar primero el TreeModel, serializarlo en JSON y luego enviarlo al lado del cliente para su posterior procesamiento.
Esto, idealmente, implica dos pasos de serialización. Sin embargo, en mi solución, actualmente estoy usando tres, que puedes ver aquí:
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();
¿Nadie?
Para responder mi propia pregunta:
JsonNode node = objectMapper.valueToTree(map);