Java Jackson 2.8.9@JsonPropertyOrder在序列化XML时不排列@JsonTypeInfo生成的字段

Java Jackson 2.8.9@JsonPropertyOrder在序列化XML时不排列@JsonTypeInfo生成的字段,java,xml,annotations,jackson,jackson-dataformat-xml,Java,Xml,Annotations,Jackson,Jackson Dataformat Xml,我正在尝试以以下格式序列化和反序列化XML: <home> <handle>300023</handle> <command>login</command> <content> <user_id>300023</user_id> <result>0</result> </content> </ho

我正在尝试以以下格式序列化和反序列化XML:

<home>
    <handle>300023</handle>
    <command>login</command>
    <content>
        <user_id>300023</user_id>
        <result>0</result>
    </content>
</home>

当我使用序列化时会出现问题

Home home = new Home();
home.setHandle(300023);
LoginContent content = new LoginContent();
content.setUserId(300023);
content.setResult(0);
home.setContent(content);
XmlMapper xmlMapper = new XmlMapper();
xmlMapper.findAndRegisterModules();
String xmlString = xmlMapper.writeValueAsString(home);
xmlString返回为xml,字段正确,但顺序不正确,为@JsonPropertyOrder

<home>
    <handle>300023</handle>
    <content>
        <user_id>300023</user_id>
        <result>0</result>
    </content>
    <command>login</command>
</home>

300023
300023
0
登录
内容
的实现类类型基于
的值,该值与
处于同一级别,因此使用了
JsonTypeInfo.as.EXTERNAL\u属性
。 由于反序列化工作正常,我排除了BaseContent的其他实现类。 现在我正在寻找一种方法,使
@JsonPropertyOrder
@JsonTypeInfo
生成的字段有效。我试图在
Home.class
中添加
command
字段,但这将导致xml中出现重复的标记

实现这一目标的正确方法是什么?或者还有其他更好的方法(使用
内容对所提到的xml进行序列化和反序列化
根据
命令
值的具体顺序而有所不同)

提前谢谢

Home home = new Home();
home.setHandle(300023);
LoginContent content = new LoginContent();
content.setUserId(300023);
content.setResult(0);
home.setContent(content);
XmlMapper xmlMapper = new XmlMapper();
xmlMapper.findAndRegisterModules();
String xmlString = xmlMapper.writeValueAsString(home);
<home>
    <handle>300023</handle>
    <content>
        <user_id>300023</user_id>
        <result>0</result>
    </content>
    <command>login</command>
</home>