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

Làm thế nào để chuyển đổi một bean thành đối tượng JSON bằng cách sử dụng Bộ lọc Loại trừ trong Java?

JsonConfig lớp có thể được sử dụng để cấu hình quá trình tuần tự hóa. Chúng tôi có thể sử dụng setJsonPropertyFilter () phương pháp của JsonConfig để đặt bộ lọc thuộc tính khi tuần tự hóa thành JSON. Chúng tôi cần triển khai tùy chỉnh Bộ lọc tài sản lớp bằng cách ghi đè apply () phương pháp của Bộ lọc tài sản giao diện. Nó trả về true nếu thuộc tính sẽ được lọc ra hoặc false nếu không.

Cú pháp

public void setJsonPropertyFilter(PropertyFilter jsonPropertyFilter)

Ví dụ

import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.PropertyFilter;
public class ConvertBeanToJsonExcludeFilterTest {
   public static void main(String[] args) {
      Student student = new Student("Sai", "Chaitanya", 20, "Hyderabad");
      JsonConfig jsonConfig = new JsonConfig();
      jsonConfig.setJsonPropertyFilter(new CustomPropertyFilter());

      JSONObject jsonObj = JSONObject.fromObject(student, jsonConfig);
      System.out.println(jsonObj.toString(3)); //pretty print JSON
   }
   public static class Student {
      private String firstName, lastName, address;
      public int age;
      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 String getLastName() {
         return lastName;
      }
      public int getAge() {
         return age;
      }
      public String getAddress() {
         return address;
      }
   }
}
// CustomPropertyFilter class
class CustomPropertyFilter implements PropertyFilter {
   @Override
   public boolean apply(Object source, String name, Object value) {
      if(Number.class.isAssignableFrom(value.getClass()) ||        String.class.isAssignableFrom(value.getClass())) {
         return false;
      }
      return true;
   }
}

Đầu ra

{
  "firstName": "Sai",
  "lastName": "Chaitanya",
  "address": "Hyderabad",
  "age": 20
}