2011-04-25 118 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