Джексон «InvalidTypeIdException: не удалось разрешить идентификатор типа» при десериализации класса с аннотацией @JsonTyJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Джексон «InvalidTypeIdException: не удалось разрешить идентификатор типа» при десериализации класса с аннотацией @JsonTy

Сообщение Anonymous »

Я застрял, пытаясь понять, как jackson-dataformat-avro разрешает идентификаторы типов. Я успешно сериализовал класс и теперь пытаюсь десериализовать его еще раз с той же схемой. У него есть частное поле «имя» типа LocalizedString. Но я получаю следующее исключение:

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

com.fasterxml.jackson.databind.exc.InvalidTypeIdException: Could not resolve type id 'org.example.LocalizedString' as a subtype of [simple type, class org.example.LocalizedString]: known type ids = [LocalizedString] (for POJO property 'name')
Класс LocalizedString выглядит следующим образом:

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

@JsonTypeInfo(use=JsonTypeInfo.Id.NAME, property="type")
@Value
public class LocalizedString {

private Map strings;

...
}
В файле схемы Avro я ввел поле имени следующим образом:

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

{
"name": "name",
"type": {
"type": "record",
"namespace": "org.example",
"name": "LocalizedString",
"fields": [
{
"name": "type",
"type": "string"
},
{
"name": "strings",
"type": ["null", {
"type": "map",
"values": "string"
}]
}
]
}
}
Если я оставлю аннотацию @JsonTypeInfo, это сработает. Однако я использую его для сериализации Json в другом месте, поэтому мне бы хотелось сохранить его.

В чем здесь конкретная проблема для Avro?

И, возможно, также проблематично то, что ключ карты строк не является строкой?

Подробнее здесь: https://stackoverflow.com/questions/612 ... ializing-c
Ответить

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

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

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

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

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