Gson教程九(譯) 強制序列化null值

2021-08-21 20:55:12 字數 1140 閱讀 1412

還記得之前發布的關於空值對映的部落格嗎?它通過很多例子向我們展示了,當值為空時gson是如何行為的。如果你還沒有閱讀,你或許可以移步到那篇部落格獲取有價值的資訊。如果你很心急,我們直接告訴你要點:當屬性的值設為空時將不會被序列化。

忽略空值這一行為對於減少json字串的體積來說通常是個好主意。然而,並不總是如此。有些api會強制要求該域存在或者null值對於某一屬性來說有特定的含義(換句話說,某值的預設值不是為空;我們需要明確的設定它為空)。

我們復用之前部落格中的user******模型。

public class user******
現在,我們為其建立乙個email為空的使用者例項。

gson gson = new gson();  

user****** user = new user******("norman", null, 26, true);

string usersjson = gson.tojson(user);

預設設定下,email屬性將不會在json結果中出現:

如果你要求email域作為json的一部分,你需要呼叫gsonbuilder.serializenulls()方法。如果你這樣做了,gson將會序列化所有屬性,即使屬性設定為空:

gsonbuilder gsonbuilder = new gsonbuilder();  

gsonbuilder.serializenulls();

gson gson = gsonbuilder.create();

user****** user = new user******("norman", null, 26, true);

string usersjson = gson.tojson(user);

usersjson現在包括email域了:

在這篇部落格中你已經學會了如何強制gson序列化值為空的屬性。

Gson教程九(譯) 強制序列化null值

該文章翻譯自gson tutorial series系列教程。該篇主要闡述了強制序列化null值。還記得之前發布的關於空值對映的部落格嗎?它通過很多例子向我們展示了,當值為空時gson是如何行為的。如果你還沒有閱讀,你或許可以移步到那篇部落格獲取有價值的資訊。如果你很心急,我們直接告訴你要點 當屬性...

gson反序列化localdateTime格式

如果需要反序列化內容是 yyyy mm dd hh mm ss 格式 那麼使用網上搜出來的 gson gson new gsonbuilder registertypeadapter localdatetime.class,new jsondeserializer create 會報錯轉化錯誤。大概...

Gson 序列化物件和反序列化 例項

from 用到的類 class netnews public string getresult public void setresult string result public arraylistgetdata public void setdata arraylistdata public s...