Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

จะแยกฟิลด์ออกจาก JSON โดยใช้คำอธิบายประกอบ @Expose ใน Java ได้อย่างไร


The Gson @Expose คำอธิบายประกอบ สามารถใช้เพื่อทำเครื่องหมายฟิลด์ที่จะเปิดเผยหรือไม่ (รวมหรือไม่) สำหรับซีเรียลไลซ์หรือดีซีเรียลไลซ์ คำอธิบายประกอบ @Expose สามารถรับพารามิเตอร์ได้ 2 ตัว และแต่ละพารามิเตอร์เป็นบูลีนซึ่งรับค่าใดค่าหนึ่ง จริง หรือ เท็จ . เพื่อให้ GSON ตอบสนองต่อคำอธิบายประกอบ @Expose เราต้องสร้างอินสแตนซ์ Gson โดยใช้ GsonBuilder และจำเป็นต้องเรียก excludeFieldsWithoutExposeAnnotation() เมธอดจะกำหนดค่า Gson เพื่อแยกฟิลด์ทั้งหมดออกจากการพิจารณาสำหรับการทำให้เป็นอนุกรมหรือการดีซีเรียลไลซ์เซชั่นที่ไม่มีคำอธิบายประกอบการเปิดเผย

ไวยากรณ์

public GsonBuilder excludeFieldsWithoutExposeAnnotation()

ตัวอย่าง

import com.google.gson.*;
import com.google.gson.annotations.*;
public class JsonExcludeAnnotationTest {
   public static void main(String args[]) {
      Employee emp = new Employee("Raja", 28, 40000.00);
      Gson gson = new GsonBuilder().setPrettyPrinting().create();
      String jsonStr = gson.toJson(emp);
      System.out.println(jsonStr);
      gson = new GsonBuilder().setPrettyPrinting().excludeFieldsWithoutExposeAnnotation().create();
      jsonStr = gson.toJson(emp);
      System.out.println(jsonStr);
   }
}
// Employee class
class Employee {
   @Expose(serialize = true, deserialize = true)
   public String name;
   @Expose(serialize = true, deserialize = true)
   public int age;
   @Expose(serialize = false, deserialize = false)
   public double salary;
   public Employee(String name, int age, double salary) {
      this.name = name;
      this.age = age;
      this.salary = salary;
   }
}

ผลลัพธ์

{
 "name": "Raja",
 "age": 28,
 "salary": 40000.0
}
{
 "name": "Raja",
 "age": 28
}