У меня проблема с моим пользовательским десериализатором JSON.
Я использую Джексона, чтобы отобразить JSON на Java и обратно. В некоторых случаях мне нужно написать свое собственное отображение.
У меня есть объект (фильтр), который содержит набор других object(metaInfoClass)
. Я пытаюсь десериализовать фильтр с Джексоном, но я реализовал собственный десериализатор для внутреннего объекта.
JSON выглядит так:
{
"freetext":false,
"cityName":null,
"regionName":null,
"countryName":null,
"maxResults":50,
"minDate":null,
"maxDate":null,
"metaInfoClasses":
[
{
"id":31,
"name":"Energy",
"D_TYPE":"Relevance"
}
],
"sources":[],
"ids":[]
}
Мой десериализатор просто отлично работает, он находит все поля и т. Д.
Проблема в том, что каким-то образом (не знаю почему) десериализатор вызывается для остальной части строки JSON, поэтому обрабатывается токен sources
и так далее.
Это очень странно, так как я не хочу десериализовать большой объект, а только внутренний metaInfoClass
.
Еще более странно: класс CollectionDeserializer
продолжает вызывать мой десериализатор со строкой json даже после ее завершения. Так что на самом деле ничего не происходит, но метод вызывается.
Есть идеи?
Большое спасибо!