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]


