Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用jackson将java对象序列化为xml属性?_Java_Json_Xml Serialization_Jackson - Fatal编程技术网

如何使用jackson将java对象序列化为xml属性?

如何使用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<

有没有办法通过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</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;
}