Джексон JSON: включение сегмента высшего уровня - PullRequest
5 голосов
/ 20 апреля 2011

Я имею в виду этот пост: конвертируйте json в объект, используя jackson , и последний ответ от StaxMan, который говорит, что в Jackson 1.7 возможно установить конфигурацию так, чтобы Джексон начал производить (и, возможно, парсинг тоже?) тег / сегмент верхнего уровня в JSON.

Может кто-нибудь пролить свет на то, как настроить эту конфигурацию, и это только для генерации JSON или анализа?

Большое спасибо!

1 Ответ

4 голосов
/ 20 апреля 2011

Вам необходимо создать и настроить ObjectMapper с помощью функции WRAP_ROOT_VALUE, например,

ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true);

См. Javadoc :

Функция, которую можно включить для создания корневого значения (обычно объекта JSON, но может быть любого типа), обернутого в один объект JSON свойства, где ключом является «корневое имя», как это определено интроспектором аннотации (особенно для JAXB, который использует @XmlRootElement.name) или отступление (неквалифицированное имя класса). Эта функция в основном предназначена для совместимости с JAXB.

По умолчанию установлено значение false, что означает, что корневое значение не переносится.

В javadoc также сказано, что он еще не реализован, но я вижу, что он используется в источнике Джексона, поэтому он может работать нормально. Хотя я и сам не пробовал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...