Gson - Loại trừ các trường khỏi Serialization
Theo mặc định, GSON loại trừ các trường tạm thời và tĩnh khỏi quá trình tuần tự hóa / giải mã hóa. Hãy xem ví dụ sau.
Thí dụ
Tạo một tệp lớp Java có tên GsonTester trong C: \> GSON_WORKSPACE.
File − 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();
Gson gson = builder.create();
Student student = new Student();
student.setRollNo(1);
student.setName("Mahesh Kumar");
student.setVerified(true);
student.setId(1);
student.className = "VI";
String jsonString = gson.toJson(student);
System.out.println(jsonString);
}
}
class Student {
private int rollNo;
private String name;
private boolean verified;
private transient int id;
public static String className;
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 void setVerified(boolean verified) {
this.verified = verified;
}
public boolean isVerified() {
return verified;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
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 đầu ra
{"rollNo":1,"name":"Mahesh Kumar","verified":true}
Sử dụngludeFieldsWithModifier
GsonBuilder cung cấp khả năng kiểm soát đối với việc loại trừ các trường có công cụ sửa đổi cụ thể bằng cách sử dụng phương thứcludeFieldsWithModifiers () từ quá trình tuần tự hóa / deserialization. Xem ví dụ sau.
Thí dụ
Tạo tệp lớp Java có tên GsonTester trong C: \> GSON_WORKSPACE.
File − GsonTester.java
import java.lang.reflect.Modifier;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class GsonTester {
public static void main(String args[]) {
GsonBuilder builder = new GsonBuilder();
builder.excludeFieldsWithModifiers(Modifier.TRANSIENT);
Gson gson = builder.create();
Student student = new Student();
student.setRollNo(1);
student.setName("Mahesh Kumar");
student.setVerified(true);
student.setId(1);
student.className = "VI";
String jsonString = gson.toJson(student);
System.out.println(jsonString);
}
}
class Student {
private int rollNo;
private String name;
private boolean verified;
private transient int id;
public static String className;
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 void setVerified(boolean verified) {
this.verified = verified;
}
public boolean isVerified() {
return verified;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
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 đầu ra
{"rollNo":1,"name":"Mahesh Kumar","verified":true,"className":"VI"}
Sử dụng @Expose Annotation
Gson cung cấp @Exposechú thích để kiểm soát việc tuần tự hóa / giải mã hóa Json của một lớp dựa trên phạm vi của nó. Hãy xem xét lớp sau với một biến có@Exposeủng hộ. Trong lớp học này,name và rollnocác biến sẽ được hiển thị để tuần tự hóa. Sau đó, chúng tôi đã sử dụngGsonBuilder.excludeFieldsWithoutExposeAnnotation()phương pháp để chỉ ra rằng chỉ các biến được tiếp xúc mới được tuần tự hóa / giải mã hóa. Xem ví dụ sau.
Thí dụ
Tạo một tệp lớp Java có tên GsonTester trong C: \> GSON_WORKSPACE.
File − GsonTester.java
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.annotations.Expose;
public class GsonTester {
public static void main(String args[]) {
GsonBuilder builder = new GsonBuilder();
builder.excludeFieldsWithoutExposeAnnotation();
Gson gson = builder.create();
Student student = new Student();
student.setRollNo(1);
student.setName("Mahesh Kumar");
student.setVerified(true);
student.setId(1);
student.className = "VI";
String jsonString = gson.toJson(student);
System.out.println(jsonString);
}
}
class Student {
@Expose
private int rollNo;
@Expose
private String name;
private boolean verified;
private int id;
public static String className;
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 void setVerified(boolean verified) {
this.verified = verified;
}
public boolean isVerified() {
return verified;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
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 đầu ra
{"rollNo":1,"name":"Mahesh Kumar"}