Juste pour développer les autres réponses - si vous devez contrôler l'omission des valeurs nulles sur une base par champ, annotez le champ en question (ou annotez alternativement le 'getter' du champ).
exemple - ici seulement fieldOne
sera omis de json s'il est nul. fieldTwo
sera toujours inclus, qu'il soit nul ou non.
public class Foo {
@JsonInclude(JsonInclude.Include.NON_NULL)
private String fieldOne;
private String fieldTwo;
}
Pour omettre toutes les valeurs nulles de la classe par défaut, annotez la classe. Les annotations par champ / getter peuvent toujours être utilisées pour remplacer cette valeur par défaut si nécessaire.
exemple - ici fieldOne
et fieldTwo
seront supprimés de json s'ils sont respectivement nuls, car il s'agit de la valeur par défaut définie par l'annotation de classe. fieldThree
cependant, remplacera la valeur par défaut et sera toujours inclus, en raison de l'annotation sur le champ.
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Foo {
private String fieldOne;
private String fieldTwo;
@JsonInclude(JsonInclude.Include.ALWAYS)
private String fieldThree;
}
MISE À JOUR
Ce qui précède est pour Jackson 2 . Pour les versions antérieures de Jackson, vous devez utiliser:
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
au lieu de
@JsonInclude(JsonInclude.Include.NON_NULL)
Si cette mise à jour est utile, veuillez noter la réponse de ZiglioUK ci-dessous, elle a souligné la nouvelle annotation Jackson 2 bien avant de mettre à jour ma réponse pour l'utiliser!
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
:; d'une certaine manière, votre annotation n'était pas disponible.