2010-05-04 4 views
4

Для десериализации json с неизвестным полем в объект есть @JsonAnySetter.Обработка неизвестных свойств JSON с помощью Jackson

Но что, если я прочитаю такой json в свой объект, измените некоторые известные поля и напишу его обратно в json? Неизвестные свойства будут потеряны.

Как обращаться с такими случаями? Возможно ли сопоставить объект или мне нужно прочитать данные в JsonNode или Map?

+0

http://jira.codehaus.org/browse/JACKSON-292 – skaffman

ответ

1

Unmarshalling в пользовательский класс java имеет свои преимущества и недостатки. Это дает вам приятную статическую печать, но это хорошо, статично. Javadoc для @JsonAnySetter предполагает, что он похож на JAXB's @XmlAnyElement, но в отличие от @XmlAnyElement, объекты данных не содержат информацию об именах, поэтому это улица с односторонним движением.

Если вам нужно обрабатывать динамические потоки JSON, вам необходимо укусить пулю и использовать Map или JsonNode.