有没有办法通过jackson将java var(例如int)序列化为xml属性?
我找不到任何特定的 Jackson 或 json 注释(@XmlAttribute
@javax.xml.bind.annotation.XmlAttribute)来实现这一点。
e.g.
public class Point {
private int x, y, z;
public Point(final int x, final int y, final int z) {
this.x = x;
this.y = y;
this.z = z;
}
@javax.xml.bind.annotation.XmlAttribute
public int getX() {
return x;
}
...
}
我想要的是:
<point x="100" y="100" z="100"/>
但我得到的只是:
<point>
<x>100</x>
<y>100</y>
<z>100</z>
</point>
有没有办法获取属性而不是元素?
感谢帮助!
好吧,我找到了解决方案。
如果您使用 jackson-dataformat-xml,则无需注册 AnnotaionIntrospector
File file = new File("PointTest.xml");
XmlMapper xmlMapper = new XmlMapper();
xmlMapper.writeValue(file, new Point(100, 100, 100));
丢失的标签是
@JacksonXmlProperty(isAttribute = true)
所以只需将 getter 更改为:
@JacksonXmlProperty(isAttribute=true)
public int getX() {
return x;
}
而且效果很好。只需按照以下方法操作即可:
https://github.com/FasterXML/jackson-dataformat-xml
@JacksonXmlProperty 允许指定 XML 命名空间和本地名称
财产;以及属性是否要写为 XML
元素或属性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)