Я отправляю запрос на сообщение с образец запроса JSON: < /p>
"name" : "jeff",
"country" : "US",
"content" : {
"subject" : "Test-Subject",
"body" : "Test-body"
}
< /code>
Класс, который является этим JSON, десериализуется в: < /p>
@Introspected
@Builder
@Data
public class Template {
String name;
String country;
T content;
}
< /code>
Контент выглядит так: < /p>
@Introspected
@Superbuilder
@Getter
@EqualsAndHashCode
@NoArgsConstructor
@AllArgsConstructor(onConstructor_ = @JsonCreator)
@JsonTypeInfo(use=JsonTypeInfo.Id.NAME, property="content")
@JsonSubTypes(@JsonSubTypes.Type(value = EmailContent.class, name="EmailContent"))
public abstract class Content {
private String body;
}
< /code>
Это то, что я хочу, чтобы t -контент покинул в: < /p>
@Introspected
@Superbuilder
@Getter
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor(onConstructor_ = @JsonCreator)
public class EmailContent extends Content {
private String subject;
}
< /code>
У меня есть все, что работает в шаблоне, кроме общего типа контента, который доставляет мне проблемы, независимо от того, что я использую. Я пытаюсь опустошить его в классе по электронной почте. У меня есть другие классы, простирающиеся от контента, поэтому я не хочу использовать @jsondeserialize.
Подробнее здесь: https://stackoverflow.com/questions/738 ... th-jackson