" et "isGetterVisibility". La classe JsonAutoDetect peut définir des constantes statiques publiques similaires aux niveaux de visibilité de la classe Java, telles que "ANY », « DEFAUT », « NON_PRIVATE », « NONE », « PROTEC"/> " et "isGetterVisibility". La classe JsonAutoDetect peut définir des constantes statiques publiques similaires aux niveaux de visibilité de la classe Java, telles que "ANY », « DEFAUT », « NON_PRIVATE », « NONE », « PROTEC">

Maison  >  Article  >  Java  >  Quand utiliser l'annotation @JsonAutoDetect en Java ?

Quand utiliser l'annotation @JsonAutoDetect en Java ?

WBOY
WBOYavant
2023-09-01 18:01:06736parcourir

L'annotation

Quand utiliser lannotation @JsonAutoDetect en Java ?

@JsonAutoDetect peut être utilisée au niveau de la classe pour remplacer la visibilité et la désérialisation des propriétés de classe pendant la sérialisation. Nous pouvons utiliser des propriétés telles que "creatorVisibility", "fieldVisibility", "getterVisibility", "setterVisibility" pour définir la visibilité >" et "isGetterVisibility". La classe JsonAutoDetect peut être définie comme Constantes statiques publiques pour les classes Java niveaux de visibilité, tels que "ANY", "DEFAULT", "NON_PRIVATE", "NONE", "PROTECTED_AND_PRIVATE" et "PUBLIC_ONLY"

Exemple

import com.fasterxml.jackson.annotation.*;
import com.fasterxml.jackson.databind.*;
import java.io.*;
public class JsonAutoDetectTest {
   public static void main(String[] args) throws IOException {
      Address address = new Address("Madhapur", "Hyderabad", "Telangana");
      Name name = new Name("Raja", "Ramesh");
      Student student = new Student(address, name, true);
      ObjectMapper mapper = new ObjectMapper();
      String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(student);
      System.out.println("JSON: " + jsonString);
   }
}
// Address class
class Address {
   private String firstLine;
   private String secondLine;
   private String thirdLine;
   public Address(String firstLine, String secondLine, String thirdLine) {
      this.firstLine = firstLine;
      this.secondLine = secondLine;
      this.thirdLine = thirdLine;
   }
   public String getFirstLine() {
      return firstLine;
   }
   public String getSecondLine() {
      return secondLine;
   }
   public String getThirdLine() {
      return thirdLine;
   }
}
// Name class
class Name {
   private String firstName;
   private String secondName;
   public Name(String firstName, String secondName) {
      this.firstName = firstName;
      this.secondName = secondName;
   }
   public String getFirstName() {
      return firstName;
   }
   public String getSecondName() {
      return secondName;
   }
}
// Student class
@JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
class Student {
   private Address address;
   private Name name;
   private Boolean isActive;
   public Student(Address address, Name name, Boolean isActive) {
      this.address = address;
      this.name = name;
      this.isActive = isActive;
   }
}

Sortie

{
 "address" : {
    "firstLine" : "Madhapur",
    "secondLine" : "Hyderabad",
    "thirdLine" : "Telangana"
 },
 "name" : {
    "firstName" : "Raja",
    "secondName" : "Ramesh"
 },
 "isActive" : true
}<strong>
</strong>

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