如何使用jackson将java对象序列化为xml属性?
有没有办法通过jackson将java变量(例如int)序列化为xml属性? 我找不到任何特定的jackson或json注释(@xmldattribute) @javax.xml.bind.annotation.XmlAttribute)来实现这一点 e、 g 我想要的是:如何使用jackson将java对象序列化为xml属性?,java,json,xml-serialization,jackson,Java,Json,Xml Serialization,Jackson,有没有办法通过jackson将java变量(例如int)序列化为xml属性? 我找不到任何特定的jackson或json注释(@xmldattribute) @javax.xml.bind.annotation.XmlAttribute)来实现这一点 e、 g 我想要的是: <point x="100" y="100" z="100"/> 但我得到的只是: <point> <x>100</x> <y>100<
<point x="100" y="100" z="100"/>
但我得到的只是:
<point>
<x>100</x>
<y>100</y>
<z>100</z>
</point>
100
100
100
有没有办法获取属性而不是元素?
谢谢你的帮助 您注册了吗
好吧,我找到了解决办法 如果使用jackson dataformat xml,则无需注册AnnotationSpector
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;
}
而且效果很好。只需按照以下步骤操作即可:
@JacksonXmlProperty允许为指定XML命名空间和本地名称
财产;以及是否将属性写入XML
元素或属性
int类型没有问题。无论我尝试过什么,我只是得到了xml元素而不是属性。
File file = new File("PointTest.xml");
XmlMapper xmlMapper = new XmlMapper();
xmlMapper.writeValue(file, new Point(100, 100, 100));
@JacksonXmlProperty(isAttribute=true)
public int getX() {
return x;
}