Solo per espandere le altre risposte - se è necessario controllare l'omissione di valori null in base al campo, annotare il campo in questione (o in alternativa il "getter" del campo).
esempio: qui fieldOne
verrà omesso da json solo se è nullo. fieldTwo
sarà sempre incluso indipendentemente dal fatto che sia nullo.
public class Foo {
@JsonInclude(JsonInclude.Include.NON_NULL)
private String fieldOne;
private String fieldTwo;
}
Per omettere tutti i valori null nella classe come impostazione predefinita, annotare la classe. Le annotazioni per campo / getter possono comunque essere utilizzate per sovrascrivere questa impostazione predefinita, se necessario.
esempio - qui fieldOne
e fieldTwo
verrà omesso da json se sono nulli, rispettivamente, perché questa è l'impostazione predefinita dall'annotazione della classe. fieldThree
tuttavia sovrascriverà il valore predefinito e sarà sempre incluso, a causa dell'annotazione sul campo.
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Foo {
private String fieldOne;
private String fieldTwo;
@JsonInclude(JsonInclude.Include.ALWAYS)
private String fieldThree;
}
AGGIORNARE
Quanto sopra è per Jackson 2 . Per le versioni precedenti di Jackson è necessario utilizzare:
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
invece di
@JsonInclude(JsonInclude.Include.NON_NULL)
Se questo aggiornamento è utile, vota la risposta di ZiglioUK di seguito, ha sottolineato la nuova annotazione di Jackson 2 molto prima che aggiornassi la mia risposta per usarla!
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
:; in qualche modo la tua annotazione non era disponibile.