Как разобрать вложенный джексон с Джексоном? - PullRequest
0 голосов
/ 05 февраля 2019

Рассмотрим json:

{
    "name": "myName",
    "myNestedJson": "{\"key\":\"value\"}"
}

Должен ли быть разбит на классы:

public class MyDto {
    String name;
    Attributes myNestedJson;

}

public class Attributes {
    String key;
}

Может ли он быть проанализирован без записи анализатора потока?(Обратите внимание, что myNestedJson содержит json-строку с экранированием json)

1 Ответ

0 голосов
/ 05 февраля 2019

Я думаю, вы можете добавить конструктор к Attributes, который принимает String

class Attributes {
    String key;

    public Attributes() {}

    public Attributes(String s) {
        // Here, s is {"key":"value"} you can parse it into an Attributes
        // (this will use the no-arg constructor)
        try {
            ObjectMapper objectMapper = new ObjectMapper();
            Attributes a = objectMapper.readValue(s, Attributes.class);
            this.key = a.key;
        } catch(Exception e) {/*handle that*/}
    }

    // GETTERS/SETTERS  
}

Затем вы можете разобрать его следующим образом:

ObjectMapper objectMapper = new ObjectMapper();
MyDto myDto = objectMapper.readValue(json, MyDto.class);

Это немногогрязный, но ваш оригинальный JSON тоже:)

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