полиморфная десериализация Джексона с пользовательскими критериями - PullRequest
0 голосов
/ 16 ноября 2018

Мне нужно знать, могу ли я десериализовать универсальный объект в определяющий его тип, не имея дополнительного свойства или не упомянув тип в аннотации.

Пример: -

@JsonTypeInfo(use=JsonTypeInfo.Id.CLASS, include=JsonTypeInfo.As.PROPERTY, property="@class")

Выше я должен упомянуть свойство @class, а другой способ -

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY)
@JsonSubTypes({
 @JsonSubTypes.Type(value = Dog.class, name = "Dog"),
 @JsonSubTypes.Type(value = Cat.class, name = "Cat")
})

в приведенном выше примере мы определяем подклассы и пользовательский тип.

Использование обычного десериализатора StdDeserializer<T>

Есть ли другой способ сделать это, пожалуйста, скажите мне.

1 Ответ

0 голосов
/ 17 ноября 2018

Если вы можете найти способ определить подтип объекта по данным JSON, вы можете написать собственный распознаватель TypeId, который будет обрабатывать его для вас.См. Джексон Custom ID с идентификатором Resolver .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...