Maison > Java > javaDidacticiel > Comment puis-je empêcher Jackson de sérialiser des champs nuls en Java ?

Comment puis-je empêcher Jackson de sérialiser des champs nuls en Java ?

Linda Hamilton
Libérer: 2024-12-25 14:36:13
original
735 Les gens l'ont consulté

How Can I Prevent Jackson from Serializing Null Fields in Java?

Suppression de la sérialisation des champs nuls avec Jackson

Jackson est une bibliothèque de liaison de données Java populaire qui gère la sérialisation et la désérialisation entre les objets Java et JSON. Par défaut, Jackson sérialisera tous les champs non nuls d'un objet. Cependant, il peut y avoir des scénarios dans lesquels vous souhaitez ignorer certains champs lors de la sérialisation si leurs valeurs sont nulles.

Utilisation de l'annotation @JsonInclude

Jackson 2.0 et versions ultérieures introduit le @ Annotation JsonInclude, qui vous permet de spécifier quand un champ doit être inclus ou exclu lors de la sérialisation. Pour ignorer un champ si sa valeur est nulle, utilisez la valeur Include.NON_NULL :

@JsonInclude(Include.NON_NULL)
public class SomeClass {
  private String someValue;
}
Copier après la connexion

Avec cette annotation appliquée au champ, Jackson ignorera le champ someValue lors de la sérialisation s'il est nul.

Modification de la configuration de l'ObjectMapper

Vous pouvez également configurer l'ObjectMapper directement pour supprimer le sérialisation des valeurs nulles. Pour ce faire, utilisez la méthode setSerializationInclusion avec la valeur Include.NON_NULL :

mapper.setSerializationInclusion(Include.NON_NULL);
Copier après la connexion

Cela demandera à Jackson d'ignorer tous les champs nuls lors de la sérialisation pour tous les objets mappés par le mappeur.

Utilisation de @JsonInclude dans Getters

Une autre option consiste à utiliser le @JsonInclude annotation dans la méthode getter pour un champ. Cela vous permet de contrôler l'inclusion ou l'exclusion d'un champ en fonction de la valeur renvoyée. Par exemple :

public class SomeClass {
  private String someValue;
  
  @JsonInclude(JsonInclude.Include.NON_NULL)
  public String getSomeValue() {
    return someValue;
  }
}
Copier après la connexion

Dans ce cas, le champ someValue ne sera inclus lors de la sérialisation que si la méthode getter renvoie une valeur non nulle.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal