2011-04-25 7 views

Respuesta

8

ver el docs on Custom Serializers; hay un ejemplo de esto exactamente, funciona para mí.

Actualización: Parece que los documentos se han movido, y no puedo encontrar la nueva ubicación de un ejemplo similar. Si alguien sabe dónde está, por favor repita.

Actualización: Se ha actualizado el enlace, gracias a @streetturtle.

Editar: En caso de que los documentos se mueven más, permítanme pegar la respuesta correspondiente:

la conversión de los valores nulos a otra cosa

(como vacío Cuerdas)

Si desea dar salida a algún otro valor JSON en lugar de nulo (principalmente porque algunas otras herramientas de procesamiento prefieren otros valores constantes - a menudo Cadena vacía), las cosas son un poco más complicadas ya que el tipo nominal puede ser ; y si bien puede registrar el serializador para Object.class, no se usará a menos que no haya un serializador más específico para usar.

Pero hay concepto específico de "serializador nulo" que se puede utilizar como sigue:

// Configuration of ObjectMapper: 
{ 
    // First: need a custom serializer provider 
    StdSerializerProvider sp = new StdSerializerProvider(); 
    sp.setNullValueSerializer(new NullSerializer()); 
    // And then configure mapper to use it 
    ObjectMapper m = new ObjectMapper(); 
    m.setSerializerProvider(sp); 
} 

// serialization as done using regular ObjectMapper.writeValue() 

// and NullSerializer can be something as simple as: 
public class NullSerializer extends JsonSerializer<Object> 
{ 
    public void serialize(Object value, JsonGenerator jgen, 
SerializerProvider provider) 
     throws IOException, JsonProcessingException 
    { 
     // any JSON value you want... 
     jgen.writeString(""); 
    } 
} 
+1

Parece ser este: https://github.com/FasterXML/jackson-docs/wiki/JacksonHowToCustomSerializers – streetturtle

+0

Gracias @ streetturtle, eso es todo. – enigment

Cuestiones relacionadas