Class NumberSerializer

All Implemented Interfaces:
JsonFormatVisitable

public class NumberSerializer extends StdScalarSerializer<Number>
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.
  • 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 ValueSerializer<?> createContextual(SerializationContext prov, BeanProperty property)
      Description copied from class: ValueSerializer
      Method called to see if a different (or differently configured) serializer is needed to serialize values of specified property (or, for root values, in which case `null` is passed). 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.

      Note that method is only called once per POJO property, and for the first usage as root value serializer; it is not called for every serialization, as doing that would have significant performance impact; most serializers cache contextual instances for future use.

      Overrides:
      createContextual in class ValueSerializer<Number>
      Parameters:
      prov - Context to use for accessing config, other serializers
      property - Property (defined by one or more accessors - field or method - used for accessing logical property value) for which serializer is used to be used; or, `null` for root value (or in cases where caller does not have this information, which is handled as root value case).
      Returns:
      Serializer to use for serializing values of specified property; may be this instance or a new instance.
    • serialize

      public void serialize(Number value, tools.jackson.core.JsonGenerator g, SerializationContext provider) throws tools.jackson.core.JacksonException
      Description copied from class: ValueSerializer
      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 - Context that can be used to get serializers for serializing Objects value contains, if any.
      Throws:
      tools.jackson.core.JacksonException
    • acceptJsonFormatVisitor

      public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint)
      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
    • bigDecimalAsStringSerializer

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