java Jacksonxml空元素序列化

j2cgzkjk  于 2023-03-16  发布在  Java
关注(0)|答案(2)|浏览(156)

我在这个问题上遇到了困难。Jackson2.2 XML序列化器似乎是这样序列化空对象字段的:

<field/>

我怎样才能强迫它序列化这样的空字段呢?

<field></field>

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

wn9m85ua

wn9m85ua1#

请看这个问题: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>
vs91vp4v

vs91vp4v2#

工作正常,能够分别获得开始标记和结束标记

相关问题