Я пытаюсь реализовать собственный десериализатор, используя StdDeserializer<T>
. В моем методе deserialize(JsonParser, DeserializationContext)
я пытаюсь использовать JsonParser
, чтобы прочитать Multimap
, учитывая, что строка JSON равна { "toMap": { "a": "b", "a": "c" } }
.Jackson JsonParser readValueAs Multimap
Предполагая, что я нахожусь в точке, где имя поля "toMap"
, я попытался сделать это: Multimap<String, Object> rawConditions = jsonParser.readValuesAs(new TypeReference<LinkedListMultimap<String, Object>>() {});
, но это приводит к ошибке компиляции. В нем говорится, что у них есть несовместимые типы - требуется Multimap<String, Object>
, но он находит Iterator<Object>
.
Не могли бы вы быть более конкретными и написать, что должно быть в вашем «Multimap» после разбора вашего примера ввода? – Xaerxess
Я добавил ответ. Но если у вас есть контроль над сериализацией, было бы лучше иметь {"a": ["b", "c"]}, а не {"a": "b", "a": "c" } – Joel