jacksonxmlmapper按顺序生成错误的xml条目

cczfrluj  于 2021-07-05  发布在  Java
关注(0)|答案(1)|浏览(353)

我对用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。
有人有主意吗?也许我只是瞎了-其实我希望如此:-)
谢谢并致以最诚挚的问候

idfiyjo8

idfiyjo81#

在jsonpropertyorder注解中,该属性称为“dgsimoclass”,而不是“imolabels”。你应该把它换成正确的名字。

相关问题