Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package com.fasterxml.jackson.databind.ser.std;
 
 
 
Simple general purpose serializer, useful for any type for which java.lang.Object.toString() returns the desired JSON value.
public class ToStringSerializer
    extends StdSerializer<Object>
{
    
Singleton instance to use.
    public final static ToStringSerializer instance = new ToStringSerializer();

    

Note: usually you should NOT create new instances, but instead use instance which is stateless and fully thread-safe. However, there are cases where constructor is needed; for example, when using explicit serializer annotations like com.fasterxml.jackson.databind.annotation.JsonSerialize.using().

    public ToStringSerializer() { super(Object.class); }
    @Override
    public boolean isEmpty(Object value) {
        if (value == null) {
            return true;
        }
        String str = value.toString();
        // would use String.isEmpty(), but that's JDK 1.6
        return (str == null) || (str.length() == 0);
    }
    
    @Override
    public void serialize(Object valueJsonGenerator jgenSerializerProvider provider)
        throws IOExceptionJsonGenerationException
    {
        jgen.writeString(value.toString());
    }
    /* 01-Mar-2011, tatu: We were serializing as "raw" String; but generally that
     *   is not what we want, since lack of type information would imply real
     *   String type.
     */
    
Default implementation will write type prefix, call regular serialization method (since assumption is that value itself does not need JSON Array or Object start/end markers), and then write type suffix. This should work for most cases; some sub-classes may want to change this behavior.
    @Override
    public void serializeWithType(Object valueJsonGenerator jgenSerializerProvider provider,
            TypeSerializer typeSer)
        throws IOExceptionJsonGenerationException
    {
        typeSer.writeTypePrefixForScalar(valuejgen);
        serialize(valuejgenprovider);
        typeSer.writeTypeSuffixForScalar(valuejgen);
    }
    
    @Override
    public JsonNode getSchema(SerializerProvider providerType typeHint)
        throws JsonMappingException
    {
        return createSchemaNode("string"true);
    }
    
    @Override
    public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitorJavaType typeHint)
    {
    	visitor.expectStringFormat(typeHint);
    }
    
New to GrepCode? Check out our FAQ X