Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package com.fasterxml.jackson.databind.ser.std;
 
 
 
We also want to directly support serialization of com.fasterxml.jackson.databind.util.TokenBuffer; and since it is part of core package, it can not implement com.fasterxml.jackson.databind.JsonSerializable (which is only included in the mapper package)
    extends StdSerializer<TokenBuffer>
    public TokenBufferSerializer() { super(TokenBuffer.class); }
    @Override
    public void serialize(TokenBuffer valueJsonGenerator jgenSerializerProvider provider)
        throws IOExceptionJsonGenerationException
    {
        value.serialize(jgen);
    }

    
Implementing typed output for contents of a TokenBuffer is very tricky, since we do not know for sure what its contents might look like (or, rather, we do know when serializing, but not necessarily when deserializing!) One possibility would be to check the current token, and use that to determine if we would output JSON Array, Object or scalar value. Jackson 1.5 did NOT include any type information; but this seems wrong, and so 1.6 WILL include type information.

Note that we just claim it is scalar; this should work ok and is simpler than doing introspection on both serialization and deserialization.

    @Override
    public final void serializeWithType(TokenBuffer valueJsonGenerator jgenSerializerProvider provider,
            TypeSerializer typeSer)
        throws IOExceptionJsonGenerationException
    {
        typeSer.writeTypePrefixForScalar(valuejgen);
        serialize(valuejgenprovider);
        typeSer.writeTypeSuffixForScalar(valuejgen);
    }
    
    @Override
    public JsonNode getSchema(SerializerProvider providerType typeHint)
    {
        /* 01-Jan-2010, tatu: Not 100% sure what we should say here:
         *   type is basically not known. This seems closest
         *   approximation
         */
        return createSchemaNode("any"true);
    }
    
    @Override
    public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitorJavaType typeHint)
    {
        /* 01-Jan-2010, tatu: Not 100% sure what we should say here:
         *   type is basically not known. This seems closest
         *   approximation
         */
    	visitor.expectAnyFormat(typeHint);
    }
}    
New to GrepCode? Check out our FAQ X