## com.fasterxml.jackson.databind.ser.std
Class SerializableSerializer

    java.lang.Object
      com.fasterxml.jackson.databind.JsonSerializer<T>
          com.fasterxml.jackson.databind.ser.std.StdSerializer<JsonSerializable>
              com.fasterxml.jackson.databind.ser.std.SerializableSerializer

All Implemented Interfaces:
  SchemaAware

    public class SerializableSerializer

extends StdSerializer<JsonSerializable>

Generic handler for types that implement `JsonSerializable`.

Note: given that this is used for anything that implements interface, can not be checked for direct class equivalence.

Nested Class Summary

Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.JsonSerializer
`JsonSerializer.None`

Field Summary
`static SerializableSerializer` `instance`

Fields inherited from class com.fasterxml.jackson.databind.ser.std.StdSerializer
`_handledType`

Constructor Summary
`protected` `SerializableSerializer()`

Method Summary
`JsonNode` `getSchema(SerializerProvider provider, Type typeHint)` Default implementation simply claims type is "string"; usually overriden by custom serializers.
`void` `serialize(JsonSerializable value, com.fasterxml.jackson.core.JsonGenerator jgen, SerializerProvider provider)` Method that can be called to ask implementation to serialize values of type this serializer handles.
`void` `serializeWithType(JsonSerializable value, com.fasterxml.jackson.core.JsonGenerator jgen, SerializerProvider provider, TypeSerializer typeSer)` Method that can be called to ask implementation to serialize values of type this serializer handles, using specified type serializer for embedding necessary type information.

Methods inherited from class com.fasterxml.jackson.databind.ser.std.StdSerializer
`createObjectNode, createSchemaNode, createSchemaNode, handledType, isDefaultSerializer, wrapAndThrow, wrapAndThrow`

Methods inherited from class com.fasterxml.jackson.databind.JsonSerializer
`isEmpty, isUnwrappingSerializer, unwrappingSerializer, usesObjectId`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### instance

    public static final SerializableSerializer instance

Constructor Detail

### SerializableSerializer

    protected SerializableSerializer()

Method Detail

### serialize

    public void serialize(JsonSerializable value,
                          com.fasterxml.jackson.core.JsonGenerator jgen,
                          SerializerProvider provider)
                   throws IOException,
                          com.fasterxml.jackson.core.JsonGenerationException

  Description copied from class: `JsonSerializer`
  Method that can be called to ask implementation to serialize values of type this serializer handles.

  Specified by:
    `serialize` in class `StdSerializer<JsonSerializable>`
  Parameters:
    `value` - Value to serialize; can not be null.
    `jgen` - Generator used to output resulting Json content
    `provider` - Provider that can be used to get serializers for serializing Objects value contains, if any.
  Throws:
    `IOException`
    `com.fasterxml.jackson.core.JsonGenerationException`

### serializeWithType

    public final void serializeWithType(JsonSerializable value,
                                        com.fasterxml.jackson.core.JsonGenerator jgen,
                                        SerializerProvider provider,
                                        TypeSerializer typeSer)
                                 throws IOException,
                                        com.fasterxml.jackson.core.JsonGenerationException

  Description copied from class: `JsonSerializer`
  Method that can be called to ask implementation to serialize values of type this serializer handles, using specified type serializer for embedding necessary type information.

  Default implementation will ignore serialization of type information, and just calls `JsonSerializer.serialize(T, com.fasterxml.jackson.core.JsonGenerator, com.fasterxml.jackson.databind.SerializerProvider)`: serializers that can embed type information should override this to implement actual handling. Most common such handling is done by something like:

        // note: method to call depends on whether this type is serialized as JSON scalar, object or Array!
        typeSer.writeTypePrefixForScalar(value, jgen);
        serialize(value, jgen, provider);
        typeSer.writeTypeSuffixForScalar(value, jgen);

  Overrides:
    `serializeWithType` in class `JsonSerializer<JsonSerializable>`
  Parameters:
    `value` - Value to serialize; can not be null.
    `jgen` - Generator used to output resulting Json content
    `provider` - Provider that can be used to get serializers for serializing Objects value contains, if any.
    `typeSer` - Type serializer to use for including type information
  Throws:
    `IOException`
    `com.fasterxml.jackson.core.JsonGenerationException`

### getSchema

    public JsonNode getSchema(SerializerProvider provider,
                              Type typeHint)
                       throws JsonMappingException

  Description copied from class: `StdSerializer`
  Default implementation simply claims type is "string"; usually overriden by custom serializers.

  Specified by:
    `getSchema` in interface `SchemaAware`
  Overrides:
    `getSchema` in class `StdSerializer<JsonSerializable>`
  Parameters:
    `provider` - The serializer provider.
    `typeHint` - A hint about the type.
  Returns:
    Json-schema for this serializer.
  Throws:
    `JsonMappingException`

Copyright © 2012 fasterxml.com. All Rights Reserved.