All Implemented Interfaces:
JsonFormatVisitable, SchemaAware, ContextualSerializer, Serializable

public class NumberSerializer extends StdScalarSerializer<Number> implements ContextualSerializer
As a fallback, we may need to use this serializer for other types of Numbers: both custom types and "big" numbers like BigInteger and BigDecimal.
See Also:
  • Field Details

    • instance

      public static final NumberSerializer instance
      Static instance that is only to be used for Number.
    • MAX_BIG_DECIMAL_SCALE

      protected static final int MAX_BIG_DECIMAL_SCALE
      Copied from `jackson-core` class `GeneratorBase`
      See Also:
    • _isInt

      protected final boolean _isInt
  • Constructor Details

    • NumberSerializer

      public NumberSerializer(Class<? extends Number> rawType)
      Since:
      2.5
  • Method Details

    • createContextual

      public JsonSerializer<?> createContextual(SerializerProvider prov, BeanProperty property) throws JsonMappingException
      Description copied from interface: ContextualSerializer
      Method called to see if a different (or differently configured) serializer is needed to serialize values of specified property. Note that instance that this method is called on is typically shared one and as a result method should NOT modify this instance but rather construct and return a new instance. This instance should only be returned as-is, in case it is already suitable for use.
      Specified by:
      createContextual in interface ContextualSerializer
      Parameters:
      prov - Serializer provider to use for accessing config, other serializers
      property - Method or field that represents the property (and is used to access value to serialize). Should be available; but there may be cases where caller cannot provide it and null is passed instead (in which case impls usually pass 'this' serializer as is)
      Returns:
      Serializer to use for serializing values of specified property; may be this instance or a new instance.
      Throws:
      JsonMappingException
    • serialize

      public void serialize(Number value, JsonGenerator g, 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 StdSerializer<Number>
      Parameters:
      value - Value to serialize; can not be null.
      g - 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
    • getSchema

      public JsonNode getSchema(SerializerProvider provider, Type typeHint)
      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 StdScalarSerializer<Number>
      Parameters:
      provider - The serializer provider.
      typeHint - A hint about the type.
      Returns:
      Json-schema for this serializer.
    • acceptJsonFormatVisitor

      public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint) throws JsonMappingException
      Description copied from class: StdSerializer
      Default implementation specifies no format. This behavior is usually overriden by custom serializers.
      Specified by:
      acceptJsonFormatVisitor in interface JsonFormatVisitable
      Overrides:
      acceptJsonFormatVisitor in class StdScalarSerializer<Number>
      typeHint - Type of element (entity like property) being visited
      Throws:
      JsonMappingException
    • bigDecimalAsStringSerializer

      public static JsonSerializer<?> bigDecimalAsStringSerializer()
      Since:
      2.10