Jackson Vanilla Deserialize возвращает значение null для атрибута List компонента Bean

Я использую jackson-databind-2.11.0 для десериализации и сопоставления объекта с классом Bean. Мы переместили проект в микросервис и, следовательно, должны были провести рефакторинг проекта.

Ранее поведение: отсутствующее свойство списка создавало пустой список для десериализованного объекта

После рефакторинга: отсутствующее свойство списка создает значение Null для атрибута, т.е.

com.fasterxml.jackson.databind.deser.BeanDeserializer#Object bean = this._valueInstantiator.createUsingDefault(ctxt);

например: образец боба

Class A<T>{
 String id;
 List<T> att1;
 List<T> att2;

 }

Строка Json: {"A": { "id" : "XYZ"}}

Ранее десериализованный объект выглядел так:

class A {

   id : XYZ,
   att1 : [],
   att2 : [],
    }

Теперь после рефакторинга его

class A {

   id : XYZ,
   att1 : null,
   att2 : null,
  }

Я попытался исправить это по ссылке:Десериализатор Джексона - изменить ноль коллекция, чтобы очистить одну

    objectmapper.setDefaultSetterInfo(JsonSetter.Value.forContentNulls(Nulls.DEFAULT));
    objectmapper.configOverride(List.class).setSetterInfo(JsonSetter.Value.forContentNulls(Nulls.DEFAULT));
    objectmapper.setDefaultSetterInfo(JsonSetter.Value.forValueNulls(Nulls.DEFAULT));
    objectmapper.configOverride(List.class).setSetterInfo(JsonSetter.Value.forValueNulls(Nulls.DEFAULT));

но не добился успеха.

Любая помощь приветствуется.


person Ankur Saran    schedule 16.12.2020    source источник