Maison >Java >javaDidacticiel >Comment convertir un bean en objet JSON à l'aide d'un filtre d'exclusion en Java ?

Comment convertir un bean en objet JSON à l'aide d'un filtre d'exclusion en Java ?

WBOY
WBOYavant
2023-08-18 19:05:211300parcourir

Comment convertir un bean en objet JSON à laide dun filtre dexclusion en Java ?

Vous pouvez utiliser la classe JsonConfig pour configurer le processus de sérialisation. Nous pouvons utiliser la méthode setJsonPropertyFilter() de JsonConfig pour définir le filtre de propriétés lors de la sérialisation en JSON. Nous devons implémenter une classe custom PropertyFilter en remplaçant la méthode apply() de l'interface PropertyFilter. Renvoie vrai si l'attribut est filtré, faux sinon.

Syntaxe

public void setJsonPropertyFilter(PropertyFilter jsonPropertyFilter)

Exemple

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;
   }
}

Sortie

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer