Джексон: есть ли способ сериализации POJO напрямую в древовидную модель? - PullRequest
29 голосов
/ 06 августа 2011

Я ищу способ прямого преобразования некоторых POJO в Jackson TreeModel . Я знаю, что существует перевод из POJO-в-JSON-String, и поддерживается TreeModel-в-JSON-String - однако я ищу перевод POJO-в-TreeModel. Есть ли способ?

Вариант использования следующий:

  • Шаблонирование на стороне сервера выполняется в Java-реализации Mustache. Это использует 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 Ответ

46 голосов
/ 06 августа 2011

чтобы ответить на мой вопрос:

JsonNode node = objectMapper.valueToTree(map);
...