我对用javajacksonxmlmapper生成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>
如果在最后一个to成员上没有@jsonproperty,我会得到相同的结果。那是一次尝试。
该结构是更大的xml结构的一部分。
还将@jsonproperty替换为@jacksonxmlproperty:相同的结果。
就我所见,@jsonpropertyorder也可以用于xml。
有人有主意吗?也许我只是瞎了-其实我希望如此:-)
谢谢并致以最诚挚的问候
1条答案
按热度按时间idfiyjo81#
在jsonpropertyorder注解中,该属性称为“dgsimoclass”,而不是“imolabels”。你应该把它换成正确的名字。