如何将jackson json null字符串序列化为空字符串

时间:2011-04-25 19:27:05

标签: json jackson

我需要jackson json(1.8)将java NULL字符串序列化为空字符串。你怎么做呢? 非常感谢任何帮助或建议。

由于

1 个答案:

答案 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("");
   }
}