gpt4 book ai didi

java - 让 Jackson XMLMapper 在代码中设置根元素名称

转载 作者:搜寻专家 更新时间:2023-10-31 08:12:04 25 4
gpt4 key购买 nike

如何让 Jackson 的 XMLMapper 在序列化时设置根 xml 元素的名称?

如果你正在序列化一个 pojo,有一个注解可以做到这一点:@XmlRootElement(name="blah")。但是我正在序列化一个通用 Java 类 LinkedHashMap,所以我不能使用注释。

可能在某个地方有一些开关可以设置它。在 Jackson 代码中四处寻找,我看到一个名为 SerializationConfig.withRootName() 的类,但我不知道如何使用它。

最佳答案

您可以使用 ObjectWriter.withRootName 覆盖 XML 输出的根元素方法。这是示例:

public class JacksonXmlMapper {

public static void main(String[] args) throws JsonProcessingException {

Map<String, Object> map = new LinkedHashMap<String, Object>();
map.put("field1", "v1");
map.put("field2", 10);
XmlMapper mapper = new XmlMapper();
System.out.println(mapper
.writer()
.withRootName("root")
.writeValueAsString(map));

}
}

输出:

<root><field1>v1</field1><field2>10</field2></root>

关于java - 让 Jackson XMLMapper 在代码中设置根元素名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24070531/

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