【问题标题】:Jackson xml empty element serializationJackson xml空元素序列化
【发布时间】:2013-12-06 05:16:22
【问题描述】:

我很难处理这个。 Jackson 2.2 XML 序列化器似乎以这种方式序列化空对象字段:

<field/>

我怎样才能强制它像这样序列化这样的空字段:

<field></field>

非常感谢您的时间和回答。

【问题讨论】:

    标签: java xml serialization jackson


    【解决方案1】:

    请看这个问题:How do you override the null serializer in Jackson 2.0?。对于XmlMapper,它可能如下所示。创建NullSerializer:

    class NullSerializer extends JsonSerializer<Object> {
    
        @Override
        public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
            jgen.writeString("");
        }
    }
    

    简单的用法:

    XmlSerializerProvider provider = new XmlSerializerProvider(new XmlRootNameLookup());
    provider.setNullValueSerializer(new NullSerializer());
    
    XmlMapper xmlMapper = new XmlMapper();
    xmlMapper.setSerializerProvider(provider);
    
    System.out.println(xmlMapper.writeValueAsString(new Entity()));
    

    上面的程序打印:

    <Entity xmlns=""><field></field></Entity>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-14
      • 2017-01-10
      • 2016-09-22
      • 1970-01-01
      相关资源
      最近更新 更多