Gson 라이브러리는 GsonBuilder 에 사용자 정의 직렬 변환기를 등록하여 사용자 정의 직렬 변환기를 지정하는 방법을 제공합니다. 자바 객체를 JSON으로 변환하는 방법이 필요한 경우 . serialize() 를 재정의하여 맞춤 직렬 변환기를 만들 수 있습니다. com.google.gson.JsonSerializer 메소드 클래스.
아래 예에서 맞춤 직렬화 구현 JSON.
예
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; } }
출력
{ "firstName": "Adithya", "lastName": "Jai", "age": 25, "address": "Chennai", "password": "admin@123" }