Jackson xml empty element serialization

拈花ヽ惹草 提交于 2019-12-22 11:03:53

问题


I'm having a hard time with this one. Jackson 2.2 XML serializer seems to serialize empty object fields this way:

<field/>

How can I force it to serialize such empty field like this:

<field></field>

Thank you very much for your time and answers.


回答1:


Please, see this question: How do you override the null serializer in Jackson 2.0?. For XmlMapper it could look like below. Create NullSerializer:

class NullSerializer extends JsonSerializer<Object> {

    @Override
    public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
        jgen.writeString("");
    }
}

and simple usage:

XmlSerializerProvider provider = new XmlSerializerProvider(new XmlRootNameLookup());
provider.setNullValueSerializer(new NullSerializer());

XmlMapper xmlMapper = new XmlMapper();
xmlMapper.setSerializerProvider(provider);

System.out.println(xmlMapper.writeValueAsString(new Entity()));

Above program prints:

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


来源:https://stackoverflow.com/questions/20125995/jackson-xml-empty-element-serialization

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!