Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để triển khai tuần tự hóa JSON tùy chỉnh với Gson trong Java?


A Gson thư viện cung cấp một cách để chỉ định trình hủy tuần tự tùy chỉnh bằng cách đăng ký trình hủy tuần tự tùy chỉnh với GsonBuilder nếu chúng ta cần cách chuyển đổi đối tượng j ava thành JSON . Chúng tôi có thể tạo bộ gỡ tuần tự tùy chỉnh bằng cách ghi đè deserialize () phương thức của com.google.gson.JsonDeserialize r lớp học.

Trong ví dụ dưới đây, việc triển khai hủy 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 CustomJSONDeSerializerTest {
   public static void main(String[] args) {
      Gson gson = new GsonBuilder().registerTypeAdapter(Password.class, new          PasswordDeserializer()).setPrettyPrinting().create();
      String jsonStr = "{" +
                          "\"firstName\": \"Adithya\"," +
                          "\"lastName\": \"Sai\"," +
                          "\"age\": 25," +
                          "\"address\": \"Pune\"," +
                          "\"password\": \"admin@123\"" +
                       "}";
      Student student = gson.fromJson(jsonStr, Student.class);
      System.out.println(student.getPassword().getPassword());
   }
}
class PasswordDeserializer implements JsonDeserializer {
   @Override
   public Password deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)      throws JsonParseException {
      String ecryptedPwd = json.getAsString();
      return new Password(new StringBuffer(ecryptedPwd).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

admin@123