Class DurationSerializer
java.lang.Object
com.fasterxml.jackson.databind.JsonSerializer<Duration>
com.fasterxml.jackson.databind.ser.std.StdSerializer<Duration>
com.fasterxml.jackson.datatype.jsr310.ser.JSR310SerializerBase<Duration>
com.fasterxml.jackson.datatype.jsr310.ser.JSR310FormattedSerializerBase<Duration>
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
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
- 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 TypeFieldDescriptionprivate DurationUnitConverterWhen defined (notnull) duration values will be converted into integers with the unit configured for the converter.static final DurationSerializerprivate static final longFields inherited from class JSR310FormattedSerializerBase
_formatter, _integerListType, _shape, _useNanoseconds, _useTimestampFields 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) private BigDecimalprotected DateTimeFormatter_useDateTimeFormatter(com.fasterxml.jackson.databind.SerializerProvider prov, com.fasterxml.jackson.annotation.JsonFormat.Value format) com.fasterxml.jackson.databind.JsonSerializer<?> createContextual(com.fasterxml.jackson.databind.SerializerProvider prov, com.fasterxml.jackson.databind.BeanProperty property) protected 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 fromJSR310SerializerBase.serializeWithType(T, JsonGenerator, SerializerProvider, 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) protected DurationSerializerwithConverter(DurationUnitConverter converter) protected JSR310FormattedSerializerBase<?> withFeatures(Boolean writeZoneId, Boolean writeNanoseconds) protected DurationSerializerwithFormat(Boolean useTimestamp, DateTimeFormatter dtf, com.fasterxml.jackson.annotation.JsonFormat.Shape shape) Methods inherited from class JSR310FormattedSerializerBase
_integerListType, _useTimestampExplicitOnly, acceptJsonFormatVisitor, getSchema, useNanoseconds, useTimestamp, withFeaturesMethods inherited from class JSR310SerializerBase
serializeWithTypeMethods 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, withIgnoredProperties
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
INSTANCE
-
_durationUnitConverter
When defined (notnull) duration values will be converted into integers with the unit configured for the converter. Only available whenSerializationFeature.WRITE_DURATIONS_AS_TIMESTAMPSis enabled andSerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDSis not enabled since the duration converters do not support fractions- Since:
- 2.12
-
-
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) - Specified by:
withFormatin classJSR310FormattedSerializerBase<Duration>
-
withConverter
-
getTimestampsFeature
protected com.fasterxml.jackson.databind.SerializationFeature getTimestampsFeature()Description copied from class:JSR310FormattedSerializerBaseOverridable 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.
- Overrides:
getTimestampsFeaturein classJSR310FormattedSerializerBase<Duration>
-
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- Overrides:
createContextualin classJSR310FormattedSerializerBase<Duration>- 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
-
_toNanos
-
_acceptTimestampVisitor
protected void _acceptTimestampVisitor(com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper visitor, com.fasterxml.jackson.databind.JavaType typeHint) throws com.fasterxml.jackson.databind.JsonMappingException - Overrides:
_acceptTimestampVisitorin classJSR310FormattedSerializerBase<Duration>- Throws:
com.fasterxml.jackson.databind.JsonMappingException
-
serializationShape
protected com.fasterxml.jackson.core.JsonToken serializationShape(com.fasterxml.jackson.databind.SerializerProvider provider) Description copied from class:JSR310SerializerBaseOverridable helper method used fromJSR310SerializerBase.serializeWithType(T, JsonGenerator, SerializerProvider, TypeSerializer), to indicate shape of value during serialization; needed to know how type id is to be serialized.- Specified by:
serializationShapein classJSR310SerializerBase<Duration>
-
withFeatures
protected JSR310FormattedSerializerBase<?> withFeatures(Boolean writeZoneId, Boolean writeNanoseconds) - Overrides:
withFeaturesin classJSR310FormattedSerializerBase<Duration>
-
_useDateTimeFormatter
protected DateTimeFormatter _useDateTimeFormatter(com.fasterxml.jackson.databind.SerializerProvider prov, com.fasterxml.jackson.annotation.JsonFormat.Value format) - Overrides:
_useDateTimeFormatterin classJSR310FormattedSerializerBase<Duration>
-