62
задан 21 May 2015 в 03:55

1 ответ

Вам нужна только одна строка перед объявлением класса Animal для корректной полиморфной сериализации/десериализации:

@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class")
public abstract class Animal {
   ...
}

Это средство строки: добавьте метасвойство на сериализации или считайте метасвойство на десериализации (include = JsonTypeInfo.As.PROPERTY) названный "@class" (property = "@class"), который содержит полностью определенное имя класса Java (use = JsonTypeInfo.Id.CLASS).

Так, если Вы создаете JSON непосредственно (без сериализации) не забывают добавлять метасвойство "@class" с желаемым именем класса для корректной десериализации.

[еще 119] информация здесь

0
ответ дан 31 October 2019 в 14:02

Другие вопросы по тегам:

Похожие вопросы: