Jackson Object Mapper читает объекты с переменными типами полей / val - PullRequest
0 голосов
/ 03 марта 2020

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

{
field1: "val1",
field2: "val2",
field3: {{ val3 }},
field4:{
   x:a,
   y:"b"
}
}

, поэтому вы можете видеть, что поля не заключены в кавычки, а некоторые значения - нет. Я пытаюсь прочитать байтовый массив этого объекта, используя сопоставитель объектов Джексона, например,

OBJECT_MAPPER.readValue(IOUtils.toByteArray(objectContent, Map.class), но я сталкиваюсь с

[junit] Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('{' (code 123)): was expecting either valid name character (for unquoted name) or double-quote (for quoted) to start field name

Я полагаю, что это жалуется о второй открывающей скобке для значения field3.

существует ли простой способ для анализа json объекта, подобного этому, с помощью сопоставителя объектов?

1 Ответ

0 голосов
/ 03 марта 2020

Поскольку этот формат недействителен JSON, вам придется создать собственный десериализатор.

См .: https://fasterxml.github.io/jackson-databind/javadoc/2.3.0/com/fasterxml/jackson/databind/JsonDeserializer.html

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