Gson是一個廣泛使用的Java Json 庫,它能夠方便地將對象轉為json格式的字符串。然而,在對象轉換為json格式的字符串時,有些空值可能會影響json字符串的格式和完整性。在這篇文章中,我們將介紹如何使用Gson去除對象中的空,并將其轉為完整的json字符串。
在使用Gson進行對象轉換時,如果對象中存在空值,這些空值會被默認轉換為Null。這樣會導致json字符串缺乏一些必要內容的,因此我們需要對對象進行預處理,將其中的空值去除。
public static void main(String[] args) { GsonBuilder gsonBuilder = new GsonBuilder(); Gson gson = gsonBuilder.serializeNulls().create(); // 不去除空值情況下的Gson對象 User user = new User(); user.setName("王大錘"); user.setAge(18); user.setGender("男"); user.setHometown(""); user.setDescription(null); Gson gsonNonce = new GsonBuilder().create(); // 去除空值后的Gson對象 String strNonce = gsonNonce.toJson(user); System.out.println("去除 null和空字符串的json:"+ strNonce); String str = gson.toJson(user); System.out.println("保留 null和空字符串的json:"+ str); }
在使用Gson的過程中,我們可以通過GsonBuilder類的serializeNulls()方法來設置是否保留空值,默認情況下是不保留的。我們可以創建一個新的Gson對象,該對象將去除空值,并使用toJson()方法將其轉換為json字符串。如上代碼所示,我們首先創建一個新的GsonBuilder對象gsonNonce,然后使用.toJson()方法將用戶user對象轉換為json字符串,最終得到去除空值的json字符串。
在上文代碼中,利用了一些實際的數據,將其轉換為Json字符串,代碼中將保留NULL和空字符串情況和去除這些情況生成的Json字符串輸出了,這樣比較了一段較為清晰的代碼區別,希望對使用Gson序列化Json字符串的同學有所幫助。