Java Jackson 2.8.9@JsonPropertyOrder在序列化XML时不排列@JsonTypeInfo生成的字段
我正在尝试以以下格式序列化和反序列化XML: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
<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>