Что такое десериализационный эквивалент Джексона для @JsonUnwrapped?

Скажем, у меня есть следующий класс:

public class Parent {
  public int age;
  @JsonUnwrapped
  public Name name;
}

Производство JSON:

{
  "age" : 18,
  "first" : "Joey",
  "last" : "Sixpack"
}

Как я могу десериализовать это обратно в родительский класс? Я мог бы использовать @JsonCreator

@JsonCreator
public Parent(Map jsonMap) {
  age = jsonMap.get("age");
  name = new Name(jsonMap.get("first"), jsonMap.get("last"));
}

Но это также эффективно добавляет@JsonIgnoreProperties(ignoreUnknown=true) в родительский класс, так как все свойства отображаются здесь. Поэтому, если вы хотите, чтобы неизвестные поля JSON выдавали исключение, вы 'Я должен сделать это сам. Кроме того, если значения карты могут быть чем-то отличным от Strings, вы 'Я должен был сделать некоторую ручную проверку типов и преобразование. Есть ли у Джексона способ автоматически разобраться с этим делом?

Редактировать: Я могу быть сумасшедшим, но на самом деле это работает, хотя никогда не упоминалось в документации:http://fasterxml.github.io/jackson-annotations/javadoc/2.2.0/com/fasterxml/jackson/annotation/JsonUnwrapped.html

Я был почти уверен, что это неу меня раньше не работало. Тем не менее, предложенный подход @JsonCreator может оказаться предпочтительным, когда для десериализации развернутых полиморфных типов требуется специальная логика.

Ответы на вопрос(3)

Ваш ответ на вопрос