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 fieldOnesera omis de json s'il est nul. fieldTwosera 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 fieldOneet fieldTwoseront 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. fieldThreecependant, 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.