2012-07-23 9 views
9

Tengo una clase POJO simple que amplía otra clase POJO simple. Estoy usando el com.sun.jersey.json.impl.provider.entity.JacksonProviderProxy para ordenar las propiedades en estas clases de POJO a JSON. Sin embargo, cuando configuré algunas de las propiedades para el POJO como null, entonces esas propiedades se generan como la cadena null en lugar de no emitirla en absoluto.JacksonProviderProxy escribe valores nulos en la salida json

por ej.

{ 
    Person: 
    [{ 
     "firstName":"John" 
     "lastName":"null" 
    }] 
} 

en lugar de:

para, por ejemplo.

{ 
    Person: 
    [{ 
     "firstName":"John" 
    }] 
} 
+0

Estoy tratando de hacer esto en una aplicación web. Entonces, cualquier sugerencia sobre cómo confiurar esto en una aplicación web sería genial. –

Respuesta

18

Diferentes opciones están disponibles para la supresión de serialización de las propiedades con valores nulos, dependiendo de la versión de Jackson en uso, y si el ObjectMapper se pueden configurar directamente.

Con Jackson 1.1+, con acceso directo para configurar el ObjectMapper, puede simplemente llamar al setSerializationInclusion (Include.NON_NULL).

alternativa, puede anotar el tipo (clase) que tiene las propiedades, por lo que las propiedades nulos serialización es a ser suprimida, con @JsonSerialize (include=Inclusion.NON_NULL).

Con Jackson 2+, en lugar de la anotación @JsonSerialize, utilice @JsonInclude (Include.NON_NULL).