我需要jackson json(1.8)将java NULL字符串序列化为空字符串。你怎么做呢? 非常感谢任何帮助或建议。
由于
答案 0 :(得分:10)
见docs on Custom Serializers;有一个这样的例子,适合我。
如果文档移动,请让我粘贴相关答案:
将空值转换为其他内容
(就像空字符串一样)
如果要输出其他一些JSON值而不是null(主要是 因为其他一些处理工具更喜欢其他常量值 - 通常是空的String),因为名义类型可能有点棘手 任何事情;虽然你可以为
Object.class
注册序列化器,但它 除非没有更多特定的序列化器可供使用,否则不会被使用。但是你可以使用“null serializer”的特定概念 如下:
// Configuration of ObjectMapper: { // First: need a custom serializer provider StdSerializerProvider sp = new StdSerializerProvider(); sp.setNullValueSerializer(new NullSerializer()); // And then configure mapper to use it ObjectMapper m = new ObjectMapper(); m.setSerializerProvider(sp); } // serialization as done using regular ObjectMapper.writeValue() // and NullSerializer can be something as simple as: public class NullSerializer extends JsonSerializer<Object> { public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { // any JSON value you want... jgen.writeString(""); } }