Java 获取Jackson XMLMapper以在代码中设置根元素名称
如何让Jackson的XMLMapper在序列化时设置根xml元素的名称 如果要序列化pojo,则需要一个注释:@XmlRootElement(name=“blah”)。但是我正在序列化一个通用Java类LinkedHashMap,所以我不能使用注释Java 获取Jackson XMLMapper以在代码中设置根元素名称,java,json,serialization,jackson,Java,Json,Serialization,Jackson,如何让Jackson的XMLMapper在序列化时设置根xml元素的名称 如果要序列化pojo,则需要一个注释:@XmlRootElement(name=“blah”)。但是我正在序列化一个通用Java类LinkedHashMap,所以我不能使用注释 可能在某个地方有开关来设置它。翻看Jackson代码,我看到一个名为SerializationConfig.withRootName()的类,但我不知道如何使用它。可以使用该方法覆盖XML输出的根元素。下面是一个例子: public class J
可能在某个地方有开关来设置它。翻看Jackson代码,我看到一个名为SerializationConfig.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));
}
}
公共类JacksonXmlMapper{
公共静态void main(字符串[]args)引发JsonProcessingException{
Map Map=newlinkedhashmap();
地图放置(“字段1”、“v1”);
地图放置(“字段2”,10);
XmlMapper mapper=新的XmlMapper();
System.out.println(映射器
.writer()
.withRootName(“根”)
.writeValueAsString(map));
}
}
输出:
<root><field1>v1</field1><field2>10</field2></root>
v110