Gson是一種Java庫,用于將Java對象轉換為JSON字符串以及將JSON字符串轉換為Java對象。不過,在將JSON字符串轉換為Java對象時,有時候我們會遇到null值的問題。
當JSON字符串中的某些屬性值為null時,Gson默認會將其轉換為空值。這對于某些應用場景可能并不是我們所期望的結果。但是,我們可以通過GsonBuilder來配置Gson的行為,使其按照我們自己期望的方式處理null值。
Gson gson = new GsonBuilder().serializeNulls().create(); String jsonStr = "{\"name\":\"張三\",\"age\":null}"; // 將JSON字符串轉換為Java對象 Person person = gson.fromJson(jsonStr, Person.class); System.out.println(person.getName()); // 輸出:張三 System.out.println(person.getAge()); // 輸出:null // 將Java對象轉換為JSON字符串 String personJsonStr = gson.toJson(person); System.out.println(personJsonStr); // 輸出:{"name":"張三","age":null}
在上面的代碼中,我們使用了GsonBuilder的serializeNulls方法來指定Gson在處理null值時,也要保留這個屬性并將其轉換為JSON中的null值。這樣,當我們將JSON字符串轉換為Java對象時,就可以獲得null值了。
此外,我們還可以通過GsonBuilder的其他方法來更改Gson的默認行為。例如,我們可以通過setLenient方法來指定Gson在解析JSON字符串時要不要嚴格遵守JSON規范。