Десериализатор Джексона - изменить нулевую коллекцию на пустую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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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