我在使用Jackson生成XML字符串时遇到了一个问题:它在XML中生成了错误的条目顺序,但是我使用@JsonPropertyOrder,并且成员在类中处于所需的顺序。请看我的密码:
@JsonPropertyOrder({ "craneNumber", "moveType", "reference", "unitNumber", "ISOCode", "IMOLabels", "seal", "doorDirection" })
public class OcrDataResultUnit {
@JacksonXmlElementWrapper(localName="unit")
private String craneNumber;
private String moveType;
private String reference;
private String unitNumber;
@JsonProperty("ISOCode")
private String isoCode;
@JacksonXmlElementWrapper(localName="IMOLabels")
@JsonProperty("DGSIMOClass")
private List<String> imoLabels = new ArrayList<>();
@JsonProperty("seal")
private String seal;
@JsonProperty("doorDirection")
private String doorDirection;
// all getters and setters ...用法:
XmlMapper mapper = new XmlMapper();
String msgXml = mapper.writeValueAsString(this);结果:
<unit>
<craneNumber>QC01</craneNumber>
<moveType>D</moveType>
<reference>12345678901234567890123456789012</reference>
<unitNumber>ABCD00001234</unitNumber>
<ISOCode>22G1</ISOCode>
<seal>Y</seal>
<doorDirection>H</doorDirection>
<IMOLabels>
<DGSIMOClass>1.5</DGSIMOClass>
<DGSIMOClass>2.1</DGSIMOClass>
</IMOLabels>
</unit>的一部分,将@JsonProperty替换为@JacksonXmlProperty:相同的结果。据我所见,
有谁有主意吗?也许我只是瞎了--实际上我希望如此:-)
谢谢并致以最良好的问候
发布于 2020-09-04 10:31:42
在您的JsonPropertyOrder注释中,该属性称为"DGSIMOClass",而不是"IMOLabels“。你应该把它换成正确的名字。
https://stackoverflow.com/questions/63738913
复制相似问题