2011-04-25 123 views
9

我需要jackson json(1.8)将java NULL字符串序列化为空字符串。你怎么做呢? 任何帮助或建议,不胜感激。如何在jackson json空字符串中序列化为空字符串

感谢

+1

看看这篇文章:http://magicmonster.com/kb/prg/java /spring/webmvc/jackson_custom.html – 2011-08-23 20:59:44

回答

8

docs on Custom Serializers;有一个正是这样的例子,适合我。

更新:看来文档都感动了,我无法找到一个类似的例子的新位置。如果有人知道这是什么,请登录。

更新:更新了链接,感谢@streetturtle。

编辑:如果该文档再次移动让我粘贴相关答案:

如果你到别的

(如空字符串)

转换空值想要输出一些其他JSON值而不是null(主要是 ,因为其他一些处理工具更喜欢其他常数值 - 通常空字符串),事情有点棘手,因为名义类型可能是 什么;虽然你可以注册序列化器为Object.class,但它不会被使用,除非没有更具体的序列化器使用。

但有“空串”您可以为 使用的具体概念如下:

// 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(""); 
    } 
} 
+1

似乎是这一个:https://github.com/FasterXML/jackson-docs/wiki/JacksonHowToCustomSerializers – streetturtle 2016-09-13 15:26:14

+0

谢谢@streetturtle,就是这样。 – enigment 2017-05-24 11:56:26