Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.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
Java 获取Jackson XMLMapper以在代码中设置根元素名称_Java_Json_Serialization_Jackson - Fatal编程技术网

Java 获取Jackson XMLMapper以在代码中设置根元素名称

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的XMLMapper在序列化时设置根xml元素的名称

如果要序列化pojo,则需要一个注释:@XmlRootElement(name=“blah”)。但是我正在序列化一个通用Java类LinkedHashMap,所以我不能使用注释


可能在某个地方有开关来设置它。翻看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