Как уже описано, конфигурация по умолчанию для экземпляра ObjectMapper
предназначена только для доступа к свойствам, которые являются открытыми полями или имеют общедоступные методы получения / установки.Альтернативой изменению определения класса, чтобы сделать поле общедоступным или предоставить общедоступный метод получения / установки, является указание (для базового VisibilityChecker
) другого правила видимости свойства.Jackson 1.9 предоставляет для этого удобный метод ObjectMapper.setVisibility()
.Для примера в исходном вопросе я, скорее всего, настрою это как
myObjectMapper.setVisibility(JsonMethod.FIELD, Visibility.ANY);
Для Джексона> 2.0:
myObjectMapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);
Для получения дополнительной информации и подробностей о связанных параметрах конфигурации, я рекомендуюпросмотр JavaDocs на ObjectMapper.setVisibility()
.