Class InetAddressSerializer

  • All Implemented Interfaces:
    JsonFormatVisitable, SchemaAware, ContextualSerializer, java.io.Serializable

    public class InetAddressSerializer
    extends StdScalarSerializer<java.net.InetAddress>
    implements ContextualSerializer
    Simple serializer for InetAddress. Main complexity is with registration, since same serializer is to be used for sub-classes.

    Since 2.9 allows use of JsonFormat configuration (annotation, per-type defaulting) so that if JsonFormat.Shape.NUMBER (or ARRAY) is used, will serialize as "host address" (dotted numbers) instead of simple conversion.

    See Also:
    Serialized Form
    • Constructor Detail

      • InetAddressSerializer

        public InetAddressSerializer()
      • InetAddressSerializer

        public InetAddressSerializer​(boolean asNumeric)
        Since:
        2.9
    • Method Detail

      • createContextual

        public JsonSerializer<?> createContextual​(SerializerProvider serializers,
                                                  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:
        serializers - 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​(java.net.InetAddress value,
                              JsonGenerator g,
                              SerializerProvider provider)
                       throws java.io.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<java.net.InetAddress>
        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:
        java.io.IOException
      • serializeWithType

        public void serializeWithType​(java.net.InetAddress value,
                                      JsonGenerator g,
                                      SerializerProvider provider,
                                      TypeSerializer typeSer)
                               throws java.io.IOException
        Description copied from class: StdScalarSerializer
        Default implementation will write type prefix, call regular serialization method (since assumption is that value itself does not need JSON Array or Object start/end markers), and then write type suffix. This should work for most cases; some sub-classes may want to change this behavior.
        Overrides:
        serializeWithType in class StdScalarSerializer<java.net.InetAddress>
        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.
        typeSer - Type serializer to use for including type information
        Throws:
        java.io.IOException