我在这个问题上遇到了困难。Jackson2.2 XML序列化器似乎是这样序列化空对象字段的:
<field/>
我怎样才能强迫它序列化这样的空字段呢?
<field></field>
非常感谢您的时间和回答。
wn9m85ua1#
请看这个问题:How do you override the null serializer in Jackson 2.0?。对于XmlMapper,它可能如下所示。创建NullSerializer:
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>
vs91vp4v2#
工作正常,能够分别获得开始标记和结束标记
2条答案
按热度按时间wn9m85ua1#
请看这个问题:How do you override the null serializer in Jackson 2.0?。对于
XmlMapper
,它可能如下所示。创建NullSerializer
:使用方法简单:
上述程序打印:
vs91vp4v2#
工作正常,能够分别获得开始标记和结束标记