Десериализатор Джексона - изменить нулевую коллекцию на пустуюJAVA

Программисты JAVA общаются здесь
Anonymous
Десериализатор Джексона - изменить нулевую коллекцию на пустую

Сообщение Anonymous »

У меня есть объект, который содержит коллекцию в качестве атрибута:

Код: Выделить всё

public class Entity {

@JsonProperty(value="homes")
@JsonDeserialize(as=HashSet.class, contentAs=HomeImpl.class)
private Collection homes = new ArrayList();

}
Если запрос содержит значение null в качестве свойства запроса:

Код: Выделить всё

{
"homes": null
}
тогда для дома установлено значение null. Я хочу добавить дома в пустой список. Нужно ли писать для этого специальный десериализатор или есть для коллекций? Я попробовал этот десериализатор, но он выглядит уродливо (он не является универсальным и использует реализацию вместо интерфейса).

Код: Выделить всё

public class NotNullCollectionDeserializer extends JsonDeserializer {

@Override
public Collection deserialize(final JsonParser jsonParser, final DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
return jsonParser.readValueAs(new TypeReference(){});
}

@Override
public Collection getNullValue() {
return Collections.emptyList();
}
}
Так мало вопросов:
  • Есть ли какое-нибудь свойство Джексона, которое меняет нулевое значение на пустую коллекцию во время десериализации?
  • Если нет по первому пункту - нужно ли мне писать для этого десериализатор? Если да, могу ли я написать общий?


Подробнее здесь: https://stackoverflow.com/questions/323 ... -empty-one

Вернуться в «JAVA»