Estoy buscando una manera de convertir directamente un 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?Jackson: ¿hay alguna forma de serializar POJO directamente a treemodel?
El caso de uso es el siguiente:
- plantillas del lado del servidor se realiza con la implementación en Java de bigote. Esto usa el TreeModel de Jackson.
- Después de eso, necesito una versión reducida del TreeModel en el lado del cliente, así que quiero poder filtrar primero TreeModel, serializar eso 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 se pueden 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();
¿Alguien?
Otra sugerencia rápida: en lugar de utilizar StringWriter, acaba de hacer 'mapper.writeValueAsString()' (o, para obtener byte [], 'writeValueAsBytes()') – StaxMan
@StaxMan: gracias. Código ya actualizado :) –