Не работает набор fastxml jackson ObjectMapping @JsonView class

MappingJackson2HttpMessageConverter objConverter = new MappingJackson2HttpMessageConverter();
ObjectMapper objMapper = new ObjectMapper();
objMapper.setVisibility(PropertyAccessor.FIELD, Visibility.NONE);
objMapper.getSerializationConfig().withView(View.class);
objConverter.setObjectMapper(objMapper);
objConverter.getObjectMapper().getSerializationConfig().withView(View.class);

после

objMapper.getSerializationConfig()

имеет другую ссылку, чем SerializationConfig, созданный с помощью метода (..).withView(..)

Похоже, что новый SerializationConfig не применяется к objMapper

Горячо решить эту проблему? Также мои аннотации @JsonView не работают.

fastxml.jackson 2.3.0


person kxyz    schedule 03.03.2015    source источник
comment
Уберите вкладки из форматирования, здесь это не работает. Также используйте встроенный код в обратных кавычках, чтобы улучшить визуальное распознавание кода. Удобочитаемость увеличивает вероятность того, что кто-то поймет вашу проблему и, следовательно, даст ответ.   -  person Anthon    schedule 06.03.2015
comment
Возможно, этот вопрос поможет вам: stackoverflow.com/a/21054896/4576054   -  person Javi Mollá    schedule 06.03.2015


Ответы (1)


На основе связанного ответа Javier Molla:

Вы должны использовать .configure() в своем ObjectMapper и желательно повторно использовать картограф.

final ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.INDENT_OUTPUT, true);
mapper.configure(SerializationFeature.WRITE_NULL_MAP_VALUES, false);
mapper.configure(SerializationFeature.WRITE_EMPTY_JSON_ARRAYS, false);
mapper.setSerializationInclusion(Include.NON_NULL);

Вы можете поместить функции сериализации в статический блок и повторно использовать mapper => повышение производительности.

person sebster    schedule 10.03.2015