Maison  >  Article  >  Java  >  Comment les annotations de la bibliothèque Jackson contrôlent-elles la sérialisation et la désérialisation JSON ?

Comment les annotations de la bibliothèque Jackson contrôlent-elles la sérialisation et la désérialisation JSON ?

王林
王林original
2024-05-06 22:09:02889parcourir

Annotations dans la bibliothèque Jackson contrôlent la sérialisation et la désérialisation JSON : Sérialisation : @JsonIgnore : Ignorer les propriétés @JsonProperty : Spécifier le nom @JsonGetter : Utiliser la méthode get @JsonSetter : Utiliser la méthode set Désérialisation : @JsonIgnoreProperties : Ignorer les propriétés @JsonProperty : Spécifier le nom @ JsonCreator : utilisez le constructeur @JsonDeserialize : logique personnalisée

Comment les annotations de la bibliothèque Jackson contrôlent-elles la sérialisation et la désérialisation JSON ?

Utilisez des annotations pour contrôler la sérialisation et la désérialisation JSON dans la bibliothèque Jackson

Introduction

La bibliothèque Jackson est une bibliothèque Java populaire pour lier des données JSON. Les annotations jouent un rôle essentiel dans la bibliothèque Jackson, nous permettant de contrôler le processus de sérialisation et de désérialisation JSON.

Annotation de sérialisation

  • @JsonIgnore : Ignore une propriété ou une méthode afin qu'elle ne soit pas incluse dans la sortie JSON.
  • @JsonProperty : Spécifiez le nom de la propriété dans la sortie JSON.
  • @JsonGetter : Obtenez la valeur renvoyée lorsque la méthode est appelée au lieu d'accéder directement à la propriété.
  • @JsonSetter : Définissez la valeur de la propriété lorsque la méthode setter est appelée, plutôt que de l'attribuer directement.

Annotation de désérialisation

  • @JsonIgnoreProperties : Ignore les propriétés spécifiées dans l'entrée JSON.
  • @JsonProperty : Spécifiez le nom de la propriété dans l'entrée JSON et mappez-la à une propriété ou une méthode.
  • @JsonCreator : Créez des objets à l'aide de constructeurs autres que ceux par défaut au lieu d'utiliser des méthodes de définition.
  • @JsonDeserialize : Spécifiez une logique de désérialisation personnalisée, vous pouvez utiliser un convertisseur ou un gestionnaire de type personnalisé.

Cas pratique

Ce qui suit est un exemple de classe montrant comment utiliser les annotations Jackson :

@JsonIgnoreProperties(ignoreUnknown = true)
public class Person {

    private String name;

    @JsonProperty("age")
    private int yearsOld;

    @JsonGetter("education")
    public String getEducation() {
        return "College";
    }

    @JsonSetter("years_old")
    public void setAge(int yearsOld) {
        this.yearsOld = yearsOld;
    }
}

Dans cet exemple :

  • @JsonIgnoreProperties(ignoreUnknown = true) Ignorer la propriété d'entrée JSON cela n'existe pas dans la classe. @JsonIgnoreProperties(ignoreUnknown = true) 忽略JSON输入中类中不存在的属性。
  • @JsonProperty("age") 指定 yearsOld 属性在JSON输出中的名称为 "age"。
  • @JsonGetter("education") 通过获取方法 "getEducation" 返回 "education" 属性的值。
  • @JsonSetter("years_old")
  • @JsonProperty("age") spécifie que le nom de la propriété yearsOld dans la sortie JSON est "age".

@JsonGetter("education") Renvoie la valeur de l'attribut "education" via la méthode get "getEducation".

🎜@JsonSetter("years_old") Définissez la valeur de l'attribut "yearsOld" via la méthode de configuration "setAge". 🎜🎜🎜La sérialisation et la désérialisation peuvent être effectuées à l'aide de la bibliothèque Jackson via : 🎜
// 序列化
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(person);

// 反序列化
Person person = mapper.readValue(json, Person.class);

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn