【发布时间】:2013-12-06 05:16:22
【问题描述】:
我很难处理这个。 Jackson 2.2 XML 序列化器似乎以这种方式序列化空对象字段:
<field/>
我怎样才能强制它像这样序列化这样的空字段:
<field></field>
非常感谢您的时间和回答。
【问题讨论】:
标签: java xml serialization jackson
我很难处理这个。 Jackson 2.2 XML 序列化器似乎以这种方式序列化空对象字段:
<field/>
我怎样才能强制它像这样序列化这样的空字段:
<field></field>
非常感谢您的时间和回答。
【问题讨论】:
标签: java xml serialization jackson
请看这个问题: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>
【讨论】: