Thư viện Gson cung cấp một cách để chỉ định bộ tuần tự hóa tùy chỉnh bằng cách đăng ký bộ tuần tự hóa tùy chỉnh với GsonBuilder nếu chúng tôi cần cách chuyển đổi đối tượng java thành JSON . Chúng tôi có thể tạo bộ tuần tự hóa tùy chỉnh bằng cách ghi đè serialize () phương thức của com.google.gson.JsonSerializer lớp .
Trong ví dụ dưới đây, việc triển khai tuần tự hóa tùy chỉnh của JSON.
Ví dụ
import java.lang.reflect.Type; import com.google.gson.*; public class CustomJSONSerializerTest { public static void main(String[] args) { Gson gson = new GsonBuilder().registerTypeAdapter(Password.class, new PasswordSerializer()) .setPrettyPrinting().create(); Student student = new Student("Adithya", "Jai", 25, "Chennai"); student.setPassword(new Password("admin@123")); System.out.println(gson.toJson(student)); } } class PasswordSerializer implements JsonSerializer { @Override public JsonElement serialize(Password src, Type typeOfSrc, JsonSerializationContext context) { return new JsonPrimitive(new StringBuffer(src.getPassword()).toString()); } } // Student class class Student { private String firstName; private String lastName; private int age; private String address; private Password password; public Student(String firstName, String lastName, int age, String address) { super(); this.firstName = firstName; this.lastName = lastName; this.age = age; this.address = address; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public Password getPassword() { return password; } public void setPassword(Password password) { this.password = password; } public String toString() { return "Student[ " + "firstName = " + firstName + ", lastName = " + lastName + ", age = " + age + ", address = " + address + " ]"; } } // Password class class Password { private String password; public Password(String password) { super(); this.password = password; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
Đầu ra
{ "firstName": "Adithya", "lastName": "Jai", "age": 25, "address": "Chennai", "password": "admin@123" }