com.fasterxml.jackson.databind.ser.std

## Class StdSerializer<T>

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

- All Implemented Interfaces:
    JsonFormatVisitable, SchemaAware, Serializable
  Direct Known Subclasses:
    BeanSerializerBase, ByteArraySerializer, ContainerSerializer, CoreXMLSerializers.XMLGregorianCalendarSerializer, DOMSerializer, FailingSerializer, JsonValueSerializer, NullSerializer, RawSerializer, ReferenceTypeSerializer, SerializableSerializer, StaticListSerializerBase, StdArraySerializers.CharArraySerializer, StdDelegatingSerializer, StdKeySerializer, StdKeySerializers.Default, StdKeySerializers.Dynamic, StdKeySerializers.EnumKeySerializer, StdKeySerializers.StringKeySerializer, StdScalarSerializer, TokenBufferSerializer, ToStringSerializer, UnknownSerializer

      public abstract class StdSerializer<T>
      extends JsonSerializer<T>
      implements JsonFormatVisitable, SchemaAware, Serializable

  Base class used by all standard serializers, and can also be used for custom serializers (in fact, this is the recommended base class to use). Provides convenience methods for implementing `SchemaAware`
  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.JsonSerializer

      `JsonSerializer.None`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Class<T>` | `_handledType` Nominal type supported, usually declared type of property for which serializer is used.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `StdSerializer(Class<?> t, boolean dummy)` Alternate constructor that is (alas!) needed to work around kinks of generic type handling
    `protected` | `StdSerializer(Class<T> t)`
    `protected` | `StdSerializer(JavaType type)`
    `protected` | `StdSerializer(StdSerializer<?> src)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected static boolean` | `_neitherNull(Object a, Object b)`
    `protected static boolean` | `_nonEmpty(Collection<?> c)`
    `void` | `acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint)` Default implementation specifies no format.
    `protected ObjectNode` | `createSchemaNode(String type)`
    `protected ObjectNode` | `createSchemaNode(String type, boolean isOptional)`
    `protected JsonSerializer<?>` | `findAnnotatedContentSerializer(SerializerProvider serializers, BeanProperty property)` Convenience method for finding out possibly configured content value serializer.
    `protected JsonSerializer<?>` | `findContextualConvertingSerializer(SerializerProvider provider, BeanProperty property, JsonSerializer<?> existingSerializer)` Helper method that can be used to see if specified property has annotation indicating that a converter is to be used for contained values (contents of structured types; array/List/Map values)
    `protected JsonSerializer<?>` | `findConvertingContentSerializer(SerializerProvider provider, BeanProperty prop, JsonSerializer<?> existingSerializer)` Deprecated. Since 2.9 use {link `findContextualConvertingSerializer(com.fasterxml.jackson.databind.SerializerProvider, com.fasterxml.jackson.databind.BeanProperty, com.fasterxml.jackson.databind.JsonSerializer<?>)` instead
    `protected Boolean` | `findFormatFeature(SerializerProvider provider, BeanProperty prop, Class<?> typeForDefaults, JsonFormat.Feature feat)` Convenience method that uses `findFormatOverrides(com.fasterxml.jackson.databind.SerializerProvider, com.fasterxml.jackson.databind.BeanProperty, java.lang.Class<?>)` to find possible defaults and/of overrides, and then calls `JsonFormat.Value.getFeature(...)` to find whether that feature has been specifically marked as enabled or disabled.
    `protected JsonFormat.Value` | `findFormatOverrides(SerializerProvider provider, BeanProperty prop, Class<?> typeForDefaults)` Helper method that may be used to find if this deserializer has specific `JsonFormat` settings, either via property, or through type-specific defaulting.
    `protected JsonInclude.Value` | `findIncludeOverrides(SerializerProvider provider, BeanProperty prop, Class<?> typeForDefaults)`
    `protected PropertyFilter` | `findPropertyFilter(SerializerProvider provider, Object filterId, Object valueToFilter)` Helper method used to locate filter that is needed, based on filter id this serializer was constructed with.
    `JsonNode` | `getSchema(SerializerProvider provider, Type typeHint)` Default implementation simply claims type is "string"; usually overriden by custom serializers.
    `JsonNode` | `getSchema(SerializerProvider provider, Type typeHint, boolean isOptional)` Default implementation simply claims type is "string"; usually overriden by custom serializers.
    `Class<T>` | `handledType()` Method for accessing type of Objects this serializer can handle.
    `protected boolean` | `isDefaultSerializer(JsonSerializer<?> serializer)` Method that can be called to determine if given serializer is the default serializer Jackson uses; as opposed to a custom serializer installed by a module or calling application.
    `abstract void` | `serialize(T value, JsonGenerator gen, SerializerProvider provider)` Method that can be called to ask implementation to serialize values of type this serializer handles.
    `protected void` | `visitArrayFormat(JsonFormatVisitorWrapper visitor, JavaType typeHint, JsonFormatTypes itemType)`
    `protected void` | `visitArrayFormat(JsonFormatVisitorWrapper visitor, JavaType typeHint, JsonSerializer<?> itemSerializer, JavaType itemType)`
    `protected void` | `visitFloatFormat(JsonFormatVisitorWrapper visitor, JavaType typeHint, JsonParser.NumberType numberType)` Helper method that calls necessary visit method(s) to indicate that the underlying JSON type is a floating-point JSON number.
    `protected void` | `visitIntFormat(JsonFormatVisitorWrapper visitor, JavaType typeHint, JsonParser.NumberType numberType)` Helper method that calls necessary visit method(s) to indicate that the underlying JSON type is JSON Integer number.
    `protected void` | `visitIntFormat(JsonFormatVisitorWrapper visitor, JavaType typeHint, JsonParser.NumberType numberType, JsonValueFormat format)` Helper method that calls necessary visit method(s) to indicate that the underlying JSON type is JSON Integer number, but that there is also a further format restriction involved.
    `protected void` | `visitStringFormat(JsonFormatVisitorWrapper visitor, JavaType typeHint)` Helper method that calls necessary visit method(s) to indicate that the underlying JSON type is JSON String.
    `protected void` | `visitStringFormat(JsonFormatVisitorWrapper visitor, JavaType typeHint, JsonValueFormat format)` Helper method that calls necessary visit method(s) to indicate that the underlying JSON type is JSON String, but that there is a more refined logical type
    `void` | `wrapAndThrow(SerializerProvider provider, Throwable t, Object bean, int index)`
    `void` | `wrapAndThrow(SerializerProvider provider, Throwable t, Object bean, String fieldName)` Method that will modify caught exception (passed in as argument) as necessary to include reference information, and to ensure it is a subtype of `IOException`, or an unchecked exception.

    - ### Methods inherited from class com.fasterxml.jackson.databind.JsonSerializer

      `getDelegatee, isEmpty, isEmpty, isUnwrappingSerializer, properties, replaceDelegatee, serializeWithType, unwrappingSerializer, usesObjectId, withFilterId`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### _handledType

          protected final Class<T> _handledType

      Nominal type supported, usually declared type of property for which serializer is used.

  - ### Constructor Detail

    - #### StdSerializer

          protected StdSerializer(Class<T> t)

    - #### StdSerializer

          protected StdSerializer(JavaType type)

    - #### StdSerializer

          protected StdSerializer(Class<?> t,
                                  boolean dummy)

      Alternate constructor that is (alas!) needed to work around kinks of generic type handling

    - #### StdSerializer

          protected StdSerializer(StdSerializer<?> src)

      Since:
        2.6

  - ### Method Detail

    - #### handledType

          public Class<T> handledType()

      Description copied from class: `JsonSerializer`
      Method for accessing type of Objects this serializer can handle. Note that this information is not guaranteed to be exact -- it may be a more generic (super-type) -- but it should not be incorrect (return a non-related type).

      Default implementation will return null, which essentially means same as returning `Object.class` would; that is, that nothing is known about handled type.

      Overrides:
        `handledType` in class `JsonSerializer<T>`

    - #### serialize

          public abstract void serialize(T value,
                                         JsonGenerator gen,
                                         SerializerProvider provider)
                                  throws IOException

      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 `JsonSerializer<T>`
      Parameters:
        `value` - Value to serialize; can not be null.
        `gen` - 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`

    - #### acceptJsonFormatVisitor

          public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor,
                                              JavaType typeHint)
                                       throws JsonMappingException

      Default implementation specifies no format. This behavior is usually overriden by custom serializers.
      Specified by:
        `acceptJsonFormatVisitor` in interface `JsonFormatVisitable`
      Overrides:
        `acceptJsonFormatVisitor` in class `JsonSerializer<T>`
        `typeHint` - Type of element (entity like property) being visited
      Throws:
        `JsonMappingException`

    - #### getSchema

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

      Default implementation simply claims type is "string"; usually overriden by custom serializers.
      Specified by:
        `getSchema` in interface `SchemaAware`
      Parameters:
        `provider` - The serializer provider.
        `typeHint` - A hint about the type.
      Returns:
        Json-schema for this serializer.
      Throws:
        `JsonMappingException`

    - #### getSchema

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

      Default implementation simply claims type is "string"; usually overriden by custom serializers.
      Specified by:
        `getSchema` in interface `SchemaAware`
      Parameters:
        `provider` - The serializer provider.
        `typeHint` - A hint about the type.
        `isOptional` - Is the type optional
      Returns:
        Json-schema for this serializer.
      Throws:
        `JsonMappingException`

    - #### createSchemaNode

          protected ObjectNode createSchemaNode(String type)

    - #### createSchemaNode

          protected ObjectNode createSchemaNode(String type,
                                                boolean isOptional)

    - #### visitStringFormat

          protected void visitStringFormat(JsonFormatVisitorWrapper visitor,
                                           JavaType typeHint)
                                    throws JsonMappingException

      Helper method that calls necessary visit method(s) to indicate that the underlying JSON type is JSON String.
      Throws:
        `JsonMappingException`
      Since:
        2.7

    - #### visitStringFormat

          protected void visitStringFormat(JsonFormatVisitorWrapper visitor,
                                           JavaType typeHint,
                                           JsonValueFormat format)
                                    throws JsonMappingException

      Helper method that calls necessary visit method(s) to indicate that the underlying JSON type is JSON String, but that there is a more refined logical type
      Throws:
        `JsonMappingException`
      Since:
        2.7

    - #### visitIntFormat

          protected void visitIntFormat(JsonFormatVisitorWrapper visitor,
                                        JavaType typeHint,
                                        JsonParser.NumberType numberType)
                                 throws JsonMappingException

      Helper method that calls necessary visit method(s) to indicate that the underlying JSON type is JSON Integer number.
      Throws:
        `JsonMappingException`
      Since:
        2.7

    - #### visitIntFormat

          protected void visitIntFormat(JsonFormatVisitorWrapper visitor,
                                        JavaType typeHint,
                                        JsonParser.NumberType numberType,
                                        JsonValueFormat format)
                                 throws JsonMappingException

      Helper method that calls necessary visit method(s) to indicate that the underlying JSON type is JSON Integer number, but that there is also a further format restriction involved.
      Throws:
        `JsonMappingException`
      Since:
        2.7

    - #### visitFloatFormat

          protected void visitFloatFormat(JsonFormatVisitorWrapper visitor,
                                          JavaType typeHint,
                                          JsonParser.NumberType numberType)
                                   throws JsonMappingException

      Helper method that calls necessary visit method(s) to indicate that the underlying JSON type is a floating-point JSON number.
      Throws:
        `JsonMappingException`
      Since:
        2.7

    - #### visitArrayFormat

          protected void visitArrayFormat(JsonFormatVisitorWrapper visitor,
                                          JavaType typeHint,
                                          JsonSerializer<?> itemSerializer,
                                          JavaType itemType)
                                   throws JsonMappingException

      Throws:
        `JsonMappingException`
      Since:
        2.7

    - #### visitArrayFormat

          protected void visitArrayFormat(JsonFormatVisitorWrapper visitor,
                                          JavaType typeHint,
                                          JsonFormatTypes itemType)
                                   throws JsonMappingException

      Throws:
        `JsonMappingException`
      Since:
        2.7

    - #### wrapAndThrow

          public void wrapAndThrow(SerializerProvider provider,
                                   Throwable t,
                                   Object bean,
                                   String fieldName)
                            throws IOException

      Method that will modify caught exception (passed in as argument) as necessary to include reference information, and to ensure it is a subtype of `IOException`, or an unchecked exception.

      Rules for wrapping and unwrapping are bit complicated; essentially:

      - Errors are to be passed as is (if uncovered via unwrapping)
      - "Plain" IOExceptions (ones that are not of type `JsonMappingException` are to be passed as is
      Throws:
        `IOException`

    - #### wrapAndThrow

          public void wrapAndThrow(SerializerProvider provider,
                                   Throwable t,
                                   Object bean,
                                   int index)
                            throws IOException

      Throws:
        `IOException`

    - #### findContextualConvertingSerializer

          protected JsonSerializer<?> findContextualConvertingSerializer(SerializerProvider provider,
                                                                         BeanProperty property,
                                                                         JsonSerializer<?> existingSerializer)
                                                                  throws JsonMappingException

      Helper method that can be used to see if specified property has annotation indicating that a converter is to be used for contained values (contents of structured types; array/List/Map values)
      Parameters:
        `existingSerializer` - (optional) configured content serializer if one already exists.
      Throws:
        `JsonMappingException`
      Since:
        2.9

    - #### findConvertingContentSerializer

          @Deprecated
          protected JsonSerializer<?> findConvertingContentSerializer(SerializerProvider provider,
                                                                                  BeanProperty prop,
                                                                                  JsonSerializer<?> existingSerializer)
                                                                           throws JsonMappingException

      Deprecated. Since 2.9 use {link `findContextualConvertingSerializer(com.fasterxml.jackson.databind.SerializerProvider, com.fasterxml.jackson.databind.BeanProperty, com.fasterxml.jackson.databind.JsonSerializer<?>)` instead
      Throws:
        `JsonMappingException`

    - #### findPropertyFilter

          protected PropertyFilter findPropertyFilter(SerializerProvider provider,
                                                      Object filterId,
                                                      Object valueToFilter)
                                               throws JsonMappingException

      Helper method used to locate filter that is needed, based on filter id this serializer was constructed with.
      Throws:
        `JsonMappingException`
      Since:
        2.3

    - #### findFormatOverrides

          protected JsonFormat.Value findFormatOverrides(SerializerProvider provider,
                                                         BeanProperty prop,
                                                         Class<?> typeForDefaults)

      Helper method that may be used to find if this deserializer has specific `JsonFormat` settings, either via property, or through type-specific defaulting.
      Parameters:
        `typeForDefaults` - Type (erased) used for finding default format settings, if any
      Since:
        2.7

    - #### findFormatFeature

          protected Boolean findFormatFeature(SerializerProvider provider,
                                              BeanProperty prop,
                                              Class<?> typeForDefaults,
                                              JsonFormat.Feature feat)

      Convenience method that uses `findFormatOverrides(com.fasterxml.jackson.databind.SerializerProvider, com.fasterxml.jackson.databind.BeanProperty, java.lang.Class<?>)` to find possible defaults and/of overrides, and then calls `JsonFormat.Value.getFeature(...)` to find whether that feature has been specifically marked as enabled or disabled.
      Parameters:
        `typeForDefaults` - Type (erased) used for finding default format settings, if any
      Since:
        2.7

    - #### findIncludeOverrides

          protected JsonInclude.Value findIncludeOverrides(SerializerProvider provider,
                                                           BeanProperty prop,
                                                           Class<?> typeForDefaults)

      Since:
        2.8

    - #### findAnnotatedContentSerializer

          protected JsonSerializer<?> findAnnotatedContentSerializer(SerializerProvider serializers,
                                                                     BeanProperty property)
                                                              throws JsonMappingException

      Convenience method for finding out possibly configured content value serializer.
      Throws:
        `JsonMappingException`
      Since:
        2.7.4

    - #### isDefaultSerializer

          protected boolean isDefaultSerializer(JsonSerializer<?> serializer)

      Method that can be called to determine if given serializer is the default serializer Jackson uses; as opposed to a custom serializer installed by a module or calling application. Determination is done using `JacksonStdImpl` annotation on serializer class.

    - #### _neitherNull

          protected static final boolean _neitherNull(Object a,
                                                      Object b)

      Since:
        2.9

    - #### _nonEmpty

          protected static final boolean _nonEmpty(Collection<?> c)

      Since:
        2.9

Copyright © 2008–2018 FasterXML. All rights reserved.