Вы можете настроить десериализацию для любого атрибута.
Объявить класс десериализации, используя аннотацию JsonDeserialize (import com.fasterxml.jackson.databind.annotation.JsonDeserialize
) для атрибута, который будет обработан. Если это Enum:
@JsonDeserialize(using = MyEnumDeserialize.class)
private MyEnum myEnum;
Таким образом, ваш класс будет использоваться для десериализации атрибута. Это полный пример:
public class MyEnumDeserialize extends JsonDeserializer<MyEnum> {
@Override
public MyEnum deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException {
JsonNode node = jsonParser.getCodec().readTree(jsonParser);
MyEnum type = null;
try{
if(node.get("attr") != null){
type = MyEnum.get(Long.parseLong(node.get("attr").asText()));
if (type != null) {
return type;
}
}
}catch(Exception e){
type = null;
}
return type;
}
}
Вы не добавили конфигурацию для интеграционного теста.
Например, добавление it
в тесте scala или настройках по умолчанию и т. Д.
"org.scalatest" %% "scalatest" % "3.0.5" % "it, test"
Для всей интеграции настройки см.
. , это поможет.