Class Iso8601Serializer

  • All Implemented Interfaces:
    com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable, com.fasterxml.jackson.databind.jsonschema.SchemaAware, java.io.Serializable
    Direct Known Subclasses:
    Iso8601Serializer.WithMillis

    public class Iso8601Serializer
    extends com.fasterxml.jackson.databind.ser.std.StdSerializer<java.time.ZonedDateTime>
    A serializer used to write ZonedDateTime in ISO 8601 datetime format contain date, hours, minutes, seconds and time zone.

    The serializer should be used instead of JsonFormat.pattern() because it does not affect the tolerant deserialization Jackson provides by default.

    Use the serializer at ZonedDateTime properties to activate it:

       class MyResource {
         @JsonSerialize(using = Iso8601Serializer.class)
         private ZonedDateTime createdAt;
         // writes json as {"createdAt": "2018-11-21T13:16:47Z"} for UTC
         // or {"createdAt": "2018-11-21T13:16:47+01:00"} for CET
         // ...
       }
     }

    Note that there is a subclass to write including milli seconds: Iso8601Serializer.WithMillis

    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  Iso8601Serializer.WithMillis
      A serializer used to write ZonedDateTime in ISO 8601 datetime format contain date, hours, minutes, seconds, milli seconds and time zone.
      • Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.JsonSerializer

        com.fasterxml.jackson.databind.JsonSerializer.None
    • Field Summary

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

        _handledType
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
        Iso8601Serializer()  
      protected Iso8601Serializer​(java.lang.String pattern)
      Constructor for subclasses that create a new Iso8601Serializer for ZonedDateTime using a custom pattern for formatting.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void acceptJsonFormatVisitor​(com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper visitor, com.fasterxml.jackson.databind.JavaType typeHint)  
      void serialize​(java.time.ZonedDateTime value, com.fasterxml.jackson.core.JsonGenerator gen, com.fasterxml.jackson.databind.SerializerProvider arg2)  
      • Methods inherited from class com.fasterxml.jackson.databind.ser.std.StdSerializer

        _neitherNull, _nonEmpty, createSchemaNode, createSchemaNode, findAnnotatedContentSerializer, findContextualConvertingSerializer, findConvertingContentSerializer, findFormatFeature, findFormatOverrides, findIncludeOverrides, findPropertyFilter, getSchema, getSchema, handledType, isDefaultSerializer, visitArrayFormat, visitArrayFormat, visitFloatFormat, visitIntFormat, visitIntFormat, visitStringFormat, visitStringFormat, wrapAndThrow, wrapAndThrow
      • 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
    • Constructor Detail

      • Iso8601Serializer

        public Iso8601Serializer()
      • Iso8601Serializer

        protected Iso8601Serializer​(java.lang.String pattern)
        Constructor for subclasses that create a new Iso8601Serializer for ZonedDateTime using a custom pattern for formatting.
        Parameters:
        pattern - the pattern used for formatting, see DateTimeFormatter.ofPattern(String)
    • Method Detail

      • serialize

        public void serialize​(java.time.ZonedDateTime value,
                              com.fasterxml.jackson.core.JsonGenerator gen,
                              com.fasterxml.jackson.databind.SerializerProvider arg2)
                       throws java.io.IOException
        Specified by:
        serialize in class com.fasterxml.jackson.databind.ser.std.StdSerializer<java.time.ZonedDateTime>
        Throws:
        java.io.IOException
      • acceptJsonFormatVisitor

        public void acceptJsonFormatVisitor​(com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper visitor,
                                            com.fasterxml.jackson.databind.JavaType typeHint)
                                     throws com.fasterxml.jackson.databind.JsonMappingException
        Specified by:
        acceptJsonFormatVisitor in interface com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable
        Overrides:
        acceptJsonFormatVisitor in class com.fasterxml.jackson.databind.ser.std.StdSerializer<java.time.ZonedDateTime>
        Throws:
        com.fasterxml.jackson.databind.JsonMappingException