У меня есть приложение Spring Boot, которое моделирует ActityStreams объекты и по большей части хорошо работает Полиморфная десериализация Джексона.
В JSON есть "объекты", которые являются ссылками (ссылками), а не объекты JSON с информацией о типе.Например, "actor":"https://some.actors.href/
, а не
"actor":{
"type":"Actor",
"name":"SomeActor"
}
Я написал пользовательские десериализаторы и поместил их в поля для работы с этим
@JsonDeserialize (using = ActorOrLinkDeserializer.class)
private Actor actor;
Однако мой ActorOrLinkDeserializer
был создан, ноНикогда не звонил, и Джексон жалуется на Missing type id when trying to resolve subtype of [simple type, class org.w3.activity.streams.Actor]: missing type id property 'type' (for POJO property 'actor')
, что из полиморфного десериализатора.
Похоже, что код полиморфной десериализации имеет приоритет над моей локальной аннотацией @JsonDeserialize
, и мне нужен способ заставить мой код запускаться первым.
Я пытался использовать мой собственный ObjectMapper
вместо Boot, и нет никакой разницы.
Буду признателен за указатели и предложения.