Gson Null對象支持
gson null對象支持
gson 生成優化的 json 內容,默認忽略 null 值。但是gsonbuilder使用 gsonbuilder.serializenulls() 方法提供了在 json 輸出中顯示 null 值的標志。
gsonbuilder builder = new gsonbuilder(); builder.serializenulls(); gson gson = builder.create();
1. 沒有serializenulls調用的示例
在c:> gson_workspace中創建名為 gsontester 的java類文件。
文件:gsontester.java
import com.google.gson.gson; public class gsontester { public static void main(string args[]) { gson gson = new gson(); student student = new student(); student.setrollno(1); string jsonstring = gson.tojson(student); system.out.println(jsonstring); student = gson.fromjson(jsonstring, student.class); system.out.println(student); } } class student { private int rollno; private string name; public int getrollno() { return rollno; } public void setrollno(int rollno) { this.rollno = rollno; } public string getname() { return name; } public void setname(string name) { this.name = name; } public string tostring() { return "student[ name = "+name+", roll no: "+rollno+ "]"; } }
驗證結果
使用 javac 編譯器編譯類如下 -
c:\gson_workspace>javac gsontester.java
現在運行gsontester查看結果 -
c:\gson_workspace>java gsontester
驗證輸出。
{"rollno": 1} student[ name = null, roll no: 1]
2. serializenulls調用的示例
在c:> gson_workspace中創建名為gsontester的java類文件。
文件:gsontester.java
import com.google.gson.gson; import com.google.gson.gsonbuilder; public class gsontester { public static void main(string args[]) { gsonbuilder builder = new gsonbuilder(); builder.serializenulls(); builder.setprettyprinting(); gson gson = builder.create(); student student = new student(); student.setrollno(1); string jsonstring = gson.tojson(student); system.out.println(jsonstring); student = gson.fromjson(jsonstring, student.class); system.out.println(student); } } class student { private int rollno; private string name; public int getrollno() { return rollno; } public void setrollno(int rollno) { this.rollno = rollno; } public string getname() { return name; } public void setname(string name) { this.name = name; } public string tostring() { return "student[ name = "+name+", roll no: "+rollno+ "]"; } }
驗證結果
使用 javac 編譯器編譯類如下:
c:\gson_workspace>javac gsontester.java
現在運行 gsontester 查看結果:
c:\gson_workspace>java gsontester
驗證輸出。
{ "rollno": 1, "name": null } student[ name = null, roll no: 1]