【问题标题】:Get Jackson XMLMapper to set root element name in code获取 Jackson XMLMapper 以在代码中设置根元素名称
【发布时间】:2014-06-05 21:32:47
【问题描述】:

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

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

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

【问题讨论】:

    标签: java json serialization jackson


    【解决方案1】:

    您可以使用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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-13
      • 2012-01-09
      • 2020-10-30
      相关资源
      最近更新 更多