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