Десериализовать JSON в пользовательский объект, заключенный в необязательный ⇐ JAVA
-
Anonymous
Десериализовать JSON в пользовательский объект, заключенный в необязательный
У меня как таковых 2 класса
Родительский класс { частный окончательный необязательный дочерний элемент; @JsonCreator Parent(@JsonProperty("child") Необязательный дочерний) { this.child = ребенок; } } класс Ребенок { частное окончательное необязательное имя ; @JsonCreator Child(@JsonProperty("name")Optional name){ это.имя = имя; } } Json, который я собираюсь десериализовать в родительский класс, выглядит следующим образом:
{ "ребенок" : { "имя": "abc" } } Для десериализации я использую ObjectMapper:
Сопоставитель ObjectMapper = новый ObjectMapper() .registerModule(новый Jdk8Module()); Однако во время выполнения возникает следующее исключение:
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: невозможно создать экземпляр `java.util.Optional` (не существует создателей, таких как конструктор по умолчанию): невозможно десериализовать из значения объекта Многие ответы в стеке предлагают использовать registerModule, подобный этому. Я что-то упускаю при использовании RegisterModule?
У меня как таковых 2 класса
Родительский класс { частный окончательный необязательный дочерний элемент; @JsonCreator Parent(@JsonProperty("child") Необязательный дочерний) { this.child = ребенок; } } класс Ребенок { частное окончательное необязательное имя ; @JsonCreator Child(@JsonProperty("name")Optional name){ это.имя = имя; } } Json, который я собираюсь десериализовать в родительский класс, выглядит следующим образом:
{ "ребенок" : { "имя": "abc" } } Для десериализации я использую ObjectMapper:
Сопоставитель ObjectMapper = новый ObjectMapper() .registerModule(новый Jdk8Module()); Однако во время выполнения возникает следующее исключение:
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: невозможно создать экземпляр `java.util.Optional` (не существует создателей, таких как конструктор по умолчанию): невозможно десериализовать из значения объекта Многие ответы в стеке предлагают использовать registerModule, подобный этому. Я что-то упускаю при использовании RegisterModule?
Мобильная версия