Mapper Object Jackson - «Отсутствующий идентификатор типа» на конкретном классе дезиализация без явного типа информационJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Mapper Object Jackson - «Отсутствующий идентификатор типа» на конкретном классе дезиализация без явного типа информацион

Сообщение Anonymous »

У меня есть следующая структура объекта: < /p>

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

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "@type")
@JsonSubTypes({ @JsonSubTypes.Type(value = Dog.class, name = "dog") })
interface Animal {
String name = null;
}

@JsonTypeName("dog")
class Dog implements Animal {
public double barkVolume;
public String name;
}

class Zoo {
public Animal animal;
public Dog thisIsDog;
}
И я хочу покинуть следующий файл json в Zoo class:

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

{
"animal": {
"@type": "dog",
"barkVolume": 12.0,
"name": "my dog;"
},
"thisIsDog": {
"barkVolume": 12.0,
"name": "my dog;"
}
}
< /code>
следующим образом: < /p>
Zoo newObject = new ObjectMapper().readValue(jsonString, Zoo.class);
< /code>
Но я получаю эту ошибку: < /p>
Missing type id when trying to resolve subtype of [simple type, class com.test.Dog]:
missing type id property '@type' (for POJO property 'thisIsDog')
И если я добавлю "@type": "Dog", в этот узел , конечно, все работает ... но я не хочу. Я считаю, что у Джексона должна быть информация о типе, потому что она явно определена в классе Zoo , нет? Любая помощь будет оценена.

Подробнее здесь: https://stackoverflow.com/questions/667 ... zation-wit
Ответить

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

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

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

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

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