如何解决Jackson XmlMapper生成错误的XML条目顺序
我在使用Java Jackson XmlMapper生成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的结果相同。那是一个尝试。
- 该结构是更大的XML结构的一部分。
- 也将@JsonProperty替换为@JacksonXmlProperty:结果相同。
- 据我所知,@ JsonPropertyOrder也正确用于XML。
有人有想法吗? 也许我只是盲目的-实际上我希望如此:-)
感谢您和最诚挚的问候
解决方法
在您的JsonPropertyOrder批注中,该属性称为“ DGSIMOClass”,而不是“ IMOLabels”。您应该将其切换为正确的名称。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。