Gson - Hỗ trợ Null Object
Gson theo mặc định tạo nội dung Json được tối ưu hóa bỏ qua các giá trị NULL. Nhưng GsonBuilder cung cấp cờ để hiển thị giá trị NULL trong đầu ra Json bằng cách sử dụngGsonBuilder.serializeNulls() phương pháp.
GsonBuilder builder = new GsonBuilder();
builder.serializeNulls();
Gson gson = builder.create();
Ví dụ không có cuộc gọi serializeNulls
Tạo một tệp lớp Java có tên GsonTester trong C: \> GSON_WORKSPACE.
Tệp - 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+ "]";
}
}
Xác minh kết quả
Biên dịch các lớp bằng cách sử dụng javac trình biên dịch như sau -
C:\GSON_WORKSPACE>javac GsonTester.java
Bây giờ hãy chạy GsonTester để xem kết quả -
C:\GSON_WORKSPACE>java GsonTester
Xác minh kết quả đầu ra.
{"rollNo": 1}
Student[ name = null, roll no: 1]
Ví dụ với lệnh gọi serializeNulls
Tạo tệp lớp Java có tên GsonTester trong C: \> GSON_WORKSPACE.
Tệp - 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+ "]";
}
}
Xác minh kết quả
Biên dịch các lớp bằng cách sử dụng javac trình biên dịch như sau -
C:\GSON_WORKSPACE>javac GsonTester.java
Bây giờ chạy GsonTester để xem kết quả -
C:\GSON_WORKSPACE>java GsonTester
Xác minh kết quả đầu ra.
{
"rollNo": 1,
"name": null
}
Student[ name = null, roll no: 1]