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

Làm cách nào để tuần tự hóa và giải mã hóa một JSON bằng giao diện ExclusiveStrategy trong Java?


Mức độ loại trừ giao diện có thể được sử dụng để loại trừ bất kỳ trường nào trong quá trình tuần tự hóa và giải mã hóa. Chúng tôi có thể cung cấp một triển khai tùy chỉnh của ExclusiveStrategy và cần đăng ký nó với GsonBuilder sử dụng s etExclusionStrategies () phương pháp. Nó định cấu hình Gson để áp dụng một tập hợp các chiến lược loại trừ trong quá trình tuần tự hóa và giải mã hóa.

Cú pháp

public GsonBuilder setExclusionStrategies(ExclusionStrategy... strategies)

Ví dụ

import com.google.gson.*;
import com.google.gson.ExclusionStrategy;
import com.google.gson.FieldAttributes;
public class ExclusionStrategyTest {
   public static void main(String args[]) throws Exception {
      Gson gson = new GsonBuilder().setExclusionStrategies(new CustomExclusionStrategy()).create();
         Person person = new Person();
         person.setFirstName("Adithya");
         person.setLastName("Sai");
         person.setAddress("Hyderabad");
         String jsonString = gson.toJson(person);
         System.out.println("Serialize a JSON: \n "+jsonString);
         String inputJson = "{\"firstName\":\"Raja\", \"lastName\":\"Ramesh\", \"address\":\"Hyderabad\"}";
         person = gson.fromJson(inputJson, Person.class);
         System.out.println("Deserialize a JSON:\n"+ person);
      }
   }
   // CustomExclusionStrategy class
class CustomExclusionStrategy implements ExclusionStrategy {
   public boolean shouldSkipField(FieldAttributes f) {
      if(f.getName().equals("firstName")) {
         return true;
      }
      return false;
   }
   public boolean shouldSkipClass(Class aClass) {
      return false;
   }
}
// Person class
class Person {
   private String firstName, lastName, address;
   public String getFirstName() {
      return firstName;
   }
   public void setFirstName(String firstName) {
      this.firstName = firstName;
   }
   public String geLastName() {
      return lastName;
   }
   public void setLastName(String lastName) {
      this.lastName = lastName;
   }
   public String getAddress() {
      return address;
   }
   public void setAddress(String address) {
      this.address = address;
   }
   public String toString() {
      return "Person [" + firstName + " " + lastName + " " + address + "]";
   }
}

Đầu ra

Serialize a JSON:
{"lastName":"Sai","address":"Hyderabad"}
Deserialize a JSON:
Person [null Ramesh Hyderabad]