【发布时间】:2021-09-02 16:31:20
【问题描述】:
我想通过 REST 与另一个应用程序通信,该应用程序使用带有多层包装的 JSON。 例如:
我有以下 POJO 类:
@XmlRootElement
@AllArgsConstructor
@NoArgsConstructor
public class Message {
@Getter
@Setter
@XmlElement(name="meta")
private WrapperMeta metaParameters;
@Getter
@Setter
@XmlElement(name="message")
private WrapperMessage messageParameters;
}
包装类:
@Getter
@Setter
@XmlElement(name="parameters")
private MetaParameters meta;
}
从中生成的 JSON:
{
"meta": {
"parameters": {
"service": "some",
"sender": {
"id": "2",
"name": "Jane Doe"
}
}
},
"message": {
"parameters": {
"message": "hi"
"sent": 1630597537
}
}
}
我想摆脱 Wrapper 类,而是有一个更优雅的解决方案。
例如,使用注释,如下所示:
@XmlRootElement
@AllArgsConstructor
@NoArgsConstructor
public class Message {
@Getter
@Setter
@XmlElementWrapper(name="meta")
@XmlElement(name="parameters")
private MetaParameters metaParameters;
@Getter
@Setter
@XmlElementWrapper(name="message")
@XmlElement(name="parameters")
private MessageParameters message;
}
但 XmlElementWrapper 注释似乎只为 XML 添加包装,而不是 JSON。
【问题讨论】: