В Java, используя Jackson ObjectMapper, я пытаюсь десериализовать объект Dynamo DB, считываемый из потока Dynamo DB.
Сначала я вызываю: record.getDynamodb().getNewImage().get("primaryKey").getS().toString()
, чтобы получить значение primaryKey "1_12345" обратно из потока.
Затем я использую его в сопоставителе объектов, чтобы создать новый экземпляр объекта Metrics с набором членов primaryKey:objectMapper.readValue("1_12345", Metrics.class);
Проблема в том, что я получаю исключение для этого вызова: Unexpected character ('_' (code 95)): Expected space separating root-level values
Metrics.class — это простой POJO без конструктора. Мне интересно, нужны ли мне какие-либо специальные аннотации или escape-символы в моем вызове readValue. Кажется, я не могу найти каких-либо четких указаний на то, что решение в случае этой ошибки.
(Примечание: причина, по которой я не могу проанализировать его прямо из json, заключается в том, что структура json при анализе из потока не является простой, значение выглядит так: S указывает строку, N для числа и т. д.: {primaryKey={S: 1_12345,}, rangeKey={N: xxx}... etc. }
)
1_12345
недействителен json. Как выглядит ваш объектMetrics
? JSON должен соответствовать ему структурно. - person teppic   schedule 27.09.2017