gpt4 book ai didi

java - FasterXML jackson-dataformat-xml 序列化版本和编码未添加到 xml

转载 作者:搜寻专家 更新时间:2023-10-30 21:40:23 25 4
gpt4 key购买 nike

您好,我正在使用 faster-xml(https://github.com/FasterXML/jackson-dataformat-xml/wiki)将 java POJO 对象序列化为 xml。当我这样做时,我得到了 xml,但它在 xml 文件中没有任何版本和编码。这是我需要的格式

<?xml version="1.0" encoding="utf-8"?>
<SampleRequest>
...
</SampleRequest>

但是我只有这个

<SampleRequest>
...
</SampleRequest>

jackson fasterxml anotation中是否需要添加任何配置。

最佳答案

您可以配置您的 XmlMapper 来编写 XML header 。

XmlMapper xmlMapper = new XmlMapper();
xmlMapper.configure( ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true );

举个例子:

import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator;
import java.io.IOException;

public class Xml {
public static void main(String[] args) throws IOException {
// Important: create XmlMapper; it will use proper factories, workarounds
XmlMapper xmlMapper = new XmlMapper();
xmlMapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true);
xmlMapper.writeValue(System.out, new SampleRequest());
}
}

class SampleRequest{
public int x = 1;
public int y = 2;
}

这会生成输出:

<?xml version="1.0" encoding="UTF-8"?>
<SampleRequest>
...
</SampleRequest>

如果您想将版本设置为 1.1 而不是 1.0,请使用 ToXmlGenerator.Feature.WRITE_XML_1_1

请注意 Faster-XML 团队 recommends使用Woodstox图书馆。如果您使用它,可以设置一些其他配置。其中有一个与设置双引号有关:

public static final String P_USE_DOUBLE_QUOTES_IN_XML_DECL="com.ctc.wstx.useDoubleQuotesInXmlDecl";

WstxOutputProperties.java

有关更多详细信息,请查看 configuring Woodstox parser .

关于java - FasterXML jackson-dataformat-xml 序列化版本和编码未添加到 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35405829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com