У меня класс должен быть десриализован с использованием jackson, а класс имеет свойство collection. Коллекция пуста, но не null. Вопрос: Как десерциализировать класс без пустой коллекции. Пример кода ниже:
class Person
{
String name;
List<Event> events;
//....getter, setter
}
если
person.list = new List<Event>();
persion.name = "hello";
то исключение json будет:
{name: "hello"}
not
{name: "hello", events:[]}
Как это сделать? Спасибо ~~
=============================================== =
Я решил это советом n1ckolas. Благодарю вас первым. Моя версия Jackson 2.1.1, и Spring -3.2.2 импортировать лучшую поддержку для этого verson of jackson. Кроме того, это работает как для массивов , так и для коллекции. Ниже приведена моя конфигурация:
<!-- Enables the Spring MVC @Controller programming model -->
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper" ref="objectMapper"/>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<!--Json Mapper-->
<bean name="objectMapper" class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean" autowire="no">
<property name="featuresToDisable">
<list>
<!--not to return empty colletion-->
<value type="com.fasterxml.jackson.databind.SerializationFeature">WRITE_EMPTY_JSON_ARRAYS</value>
</list>
</property>
</bean>