Class DurationSerializer
java.lang.Object
com.fasterxml.jackson.databind.JsonSerializer<T>
com.fasterxml.jackson.databind.ser.std.StdSerializer<T>
com.fasterxml.jackson.datatype.jsr310.ser.DurationSerializer
- All Implemented Interfaces:
com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable,com.fasterxml.jackson.databind.jsonschema.SchemaAware,com.fasterxml.jackson.databind.ser.ContextualSerializer,Serializable
public class DurationSerializer
extends com.fasterxml.jackson.databind.ser.std.StdSerializer<T>
Serializer for Java 8 temporal
Durations.
NOTE: since 2.10, SerializationFeature.WRITE_DURATIONS_AS_TIMESTAMPS
determines global default used for determining if serialization should use
numeric (timestamps) or textual representation. Before this,
SerializationFeature.WRITE_DATES_AS_TIMESTAMPS was used.
- Since:
- 2.2
- Author:
- Nick Williams
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.fasterxml.jackson.databind.JsonSerializer
com.fasterxml.jackson.databind.JsonSerializer.None -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final DateTimeFormatterSpecific format to use, if not default format: non null value also indicates that serialization is to be done as JSON String, not numeric timestamp, unless#_useTimestampis true.protected com.fasterxml.jackson.databind.JavaTypeLazily constructedJavaTyperepresenting typeList<Integer>.protected final com.fasterxml.jackson.annotation.JsonFormat.Shapeprotected final BooleanFlag that indicates that numeric timestamp values must be written using nanosecond timestamps if the datatype supports such resolution, regardless of other settings.protected final BooleanFlag that indicates that serialization must be done as the Java timestamp, regardless of other settings.static final DurationSerializerFields inherited from class com.fasterxml.jackson.databind.ser.std.StdSerializer
_handledType -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedprotectedDurationSerializer(DurationSerializer base, DurationUnitConverter converter) protectedDurationSerializer(DurationSerializer base, Boolean useTimestamp, Boolean useNanoseconds, DateTimeFormatter dtf) protectedDurationSerializer(DurationSerializer base, Boolean useTimestamp, DateTimeFormatter dtf) -
Method Summary
Modifier and TypeMethodDescriptionprotected void_acceptTimestampVisitor(com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper visitor, com.fasterxml.jackson.databind.JavaType typeHint) protected com.fasterxml.jackson.databind.JavaType_integerListType(com.fasterxml.jackson.databind.SerializerProvider prov) protected DateTimeFormatter_useDateTimeFormatter(com.fasterxml.jackson.databind.SerializerProvider prov, com.fasterxml.jackson.annotation.JsonFormat.Value format) protected boolean_useTimestampExplicitOnly(com.fasterxml.jackson.databind.SerializerProvider provider) voidacceptJsonFormatVisitor(com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper visitor, com.fasterxml.jackson.databind.JavaType typeHint) com.fasterxml.jackson.databind.JsonSerializer<?>createContextual(com.fasterxml.jackson.databind.SerializerProvider prov, com.fasterxml.jackson.databind.BeanProperty property) com.fasterxml.jackson.databind.JsonNodeprotected com.fasterxml.jackson.databind.SerializationFeatureOverridable method that determinesSerializationFeaturethat is used as the global default in determining if date/time value serialized should use numeric format ("timestamp") or not.protected com.fasterxml.jackson.core.JsonTokenserializationShape(com.fasterxml.jackson.databind.SerializerProvider provider) Overridable helper method used fromJsonSerializer.serializeWithType(T, com.fasterxml.jackson.core.JsonGenerator, com.fasterxml.jackson.databind.SerializerProvider, com.fasterxml.jackson.databind.jsontype.TypeSerializer), to indicate shape of value during serialization; needed to know how type id is to be serialized.voidserialize(Duration duration, com.fasterxml.jackson.core.JsonGenerator generator, com.fasterxml.jackson.databind.SerializerProvider provider) voidserializeWithType(Duration value, com.fasterxml.jackson.core.JsonGenerator g, com.fasterxml.jackson.databind.SerializerProvider provider, com.fasterxml.jackson.databind.jsontype.TypeSerializer typeSer) protected booleanuseNanoseconds(com.fasterxml.jackson.databind.SerializerProvider provider) protected booleanuseTimestamp(com.fasterxml.jackson.databind.SerializerProvider provider) protected DurationSerializerwithConverter(DurationUnitConverter converter) protected com.fasterxml.jackson.datatype.jsr310.ser.JSR310FormattedSerializerBase<?>withFeatures(Boolean writeZoneId) Deprecated.protected com.fasterxml.jackson.datatype.jsr310.ser.JSR310FormattedSerializerBase<?>withFeatures(Boolean writeZoneId, Boolean writeNanoseconds) protected DurationSerializerwithFormat(Boolean useTimestamp, DateTimeFormatter dtf, com.fasterxml.jackson.annotation.JsonFormat.Shape shape) Methods inherited from class com.fasterxml.jackson.databind.ser.std.StdSerializer
_neitherNull, _nonEmpty, createSchemaNode, createSchemaNode, findAnnotatedContentSerializer, findContextualConvertingSerializer, findConvertingContentSerializer, findFormatFeature, findFormatOverrides, findIncludeOverrides, findPropertyFilter, getSchema, handledType, isDefaultSerializer, visitArrayFormat, visitArrayFormat, visitFloatFormat, visitIntFormat, visitIntFormat, visitStringFormat, visitStringFormat, wrapAndThrow, wrapAndThrowMethods inherited from class com.fasterxml.jackson.databind.JsonSerializer
getDelegatee, isEmpty, isEmpty, isUnwrappingSerializer, properties, replaceDelegatee, unwrappingSerializer, usesObjectId, withFilterId
-
Field Details
-
INSTANCE
-
_useTimestamp
Flag that indicates that serialization must be done as the Java timestamp, regardless of other settings. -
_useNanoseconds
Flag that indicates that numeric timestamp values must be written using nanosecond timestamps if the datatype supports such resolution, regardless of other settings. -
_formatter
Specific format to use, if not default format: non null value also indicates that serialization is to be done as JSON String, not numeric timestamp, unless#_useTimestampis true. -
_shape
protected final com.fasterxml.jackson.annotation.JsonFormat.Shape _shape -
_integerListType
protected transient volatile com.fasterxml.jackson.databind.JavaType _integerListTypeLazily constructedJavaTyperepresenting typeList<Integer>.- Since:
- 2.10
-
-
Constructor Details
-
DurationSerializer
protected DurationSerializer() -
DurationSerializer
-
DurationSerializer
protected DurationSerializer(DurationSerializer base, Boolean useTimestamp, Boolean useNanoseconds, DateTimeFormatter dtf) -
DurationSerializer
-
-
Method Details
-
withFormat
protected DurationSerializer withFormat(Boolean useTimestamp, DateTimeFormatter dtf, com.fasterxml.jackson.annotation.JsonFormat.Shape shape) -
withConverter
-
getTimestampsFeature
protected com.fasterxml.jackson.databind.SerializationFeature getTimestampsFeature()Overridable method that determinesSerializationFeaturethat is used as the global default in determining if date/time value serialized should use numeric format ("timestamp") or not.Note that this feature is just the baseline setting and may be overridden on per-type or per-property basis.
-
createContextual
public com.fasterxml.jackson.databind.JsonSerializer<?> createContextual(com.fasterxml.jackson.databind.SerializerProvider prov, com.fasterxml.jackson.databind.BeanProperty property) throws com.fasterxml.jackson.databind.JsonMappingException - Specified by:
createContextualin interfacecom.fasterxml.jackson.databind.ser.ContextualSerializer- Throws:
com.fasterxml.jackson.databind.JsonMappingException
-
serialize
public void serialize(Duration duration, com.fasterxml.jackson.core.JsonGenerator generator, com.fasterxml.jackson.databind.SerializerProvider provider) throws IOException - Specified by:
serializein classcom.fasterxml.jackson.databind.ser.std.StdSerializer<Duration>- Throws:
IOException
-
_acceptTimestampVisitor
protected void _acceptTimestampVisitor(com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper visitor, com.fasterxml.jackson.databind.JavaType typeHint) throws com.fasterxml.jackson.databind.JsonMappingException - Throws:
com.fasterxml.jackson.databind.JsonMappingException
-
serializationShape
protected com.fasterxml.jackson.core.JsonToken serializationShape(com.fasterxml.jackson.databind.SerializerProvider provider) Overridable helper method used fromJsonSerializer.serializeWithType(T, com.fasterxml.jackson.core.JsonGenerator, com.fasterxml.jackson.databind.SerializerProvider, com.fasterxml.jackson.databind.jsontype.TypeSerializer), to indicate shape of value during serialization; needed to know how type id is to be serialized. -
withFeatures
-
_useDateTimeFormatter
protected DateTimeFormatter _useDateTimeFormatter(com.fasterxml.jackson.databind.SerializerProvider prov, com.fasterxml.jackson.annotation.JsonFormat.Value format) -
withFeatures
@Deprecated protected com.fasterxml.jackson.datatype.jsr310.ser.JSR310FormattedSerializerBase<?> withFeatures(Boolean writeZoneId) Deprecated.- Since:
- 2.8
-
getSchema
public com.fasterxml.jackson.databind.JsonNode getSchema(com.fasterxml.jackson.databind.SerializerProvider provider, Type typeHint) - Specified by:
getSchemain interfacecom.fasterxml.jackson.databind.jsonschema.SchemaAware- Overrides:
getSchemain classcom.fasterxml.jackson.databind.ser.std.StdSerializer<T>
-
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:
acceptJsonFormatVisitorin interfacecom.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitable- Overrides:
acceptJsonFormatVisitorin classcom.fasterxml.jackson.databind.ser.std.StdSerializer<T>- Throws:
com.fasterxml.jackson.databind.JsonMappingException
-
_integerListType
protected com.fasterxml.jackson.databind.JavaType _integerListType(com.fasterxml.jackson.databind.SerializerProvider prov) -
useTimestamp
protected boolean useTimestamp(com.fasterxml.jackson.databind.SerializerProvider provider) -
_useTimestampExplicitOnly
protected boolean _useTimestampExplicitOnly(com.fasterxml.jackson.databind.SerializerProvider provider) -
useNanoseconds
protected boolean useNanoseconds(com.fasterxml.jackson.databind.SerializerProvider provider) -
serializeWithType
public void serializeWithType(Duration value, com.fasterxml.jackson.core.JsonGenerator g, com.fasterxml.jackson.databind.SerializerProvider provider, com.fasterxml.jackson.databind.jsontype.TypeSerializer typeSer) throws IOException - Overrides:
serializeWithTypein classcom.fasterxml.jackson.databind.JsonSerializer<T>- Throws:
IOException
-