public final class JavaTimeModule extends SimpleModule
java.time objects with the Jackson core.
ObjectMapper mapper = new ObjectMapper(); mapper.registerModule(new JavaTimeModule());
Note that as of 2.x, if auto-registering modules, this package will register
legacy version, JSR310Module, and NOT this module. 3.x will change the efaults.
Legacy version has the same functionality, but slightly different default configuration:
see JSR310Module for details.
Most java.time types are serialized as numbers (integers or decimals as appropriate) if the
SerializationFeature.WRITE_DATES_AS_TIMESTAMPS feature is enabled, and otherwise are serialized in
standard ISO-8601 string representation. ISO-8601 specifies formats
for representing offset dates and times, zoned dates and times, local dates and times, periods, durations, zones, and more. All
java.time types have built-in translation to and from ISO-8601 formats.
Granularity of timestamps is controlled through the companion features
SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS and
DeserializationFeature.READ_DATE_TIMESTAMPS_AS_NANOSECONDS. For serialization, timestamps are
written as fractional numbers (decimals), where the number is seconds and the decimal is fractional seconds, if
WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS is enabled (it is by default), with resolution as fine as nanoseconds depending on the
underlying JDK implementation. If WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS is disabled, timestamps are written as a whole number of
milliseconds. At deserialization time, decimal numbers are always read as fractional second timestamps with up-to-nanosecond resolution,
since the meaning of the decimal is unambiguous. The more ambiguous integer types are read as fractional seconds without a decimal point
if READ_DATE_TIMESTAMPS_AS_NANOSECONDS is enabled (it is by default), and otherwise they are read as milliseconds.
Some exceptions to this standard serialization/deserialization rule:
Period, which always results in an ISO-8601 format because Periods must be represented in years, months, and/or days.Year, which only contains a year and cannot be represented with a timestamp.YearMonth, which only contains a year and a month and cannot be represented with a timestamp.MonthDay, which only contains a month and a day and cannot be represented with a timestamp.ZoneId and ZoneOffset, which do not actually store dates and times but are supported with this module nonetheless.LocalDate, LocalTime, LocalDateTime, and OffsetTime, which cannot portably be converted to timestamps
and are instead represented as arrays when WRITE_DATES_AS_TIMESTAMPS is enabled.Jsr310NullKeySerializer,
Serialized FormModule.SetupContext_abstractTypes, _deserializerModifier, _deserializers, _keyDeserializers, _keySerializers, _mixins, _name, _namingStrategy, _serializerModifier, _serializers, _subtypes, _valueInstantiators, _version| Constructor and Description |
|---|
JavaTimeModule() |
| Modifier and Type | Method and Description |
|---|---|
protected AnnotatedMethod |
_findFactory(AnnotatedClass cls,
String name,
Class<?>... argTypes) |
void |
setupModule(Module.SetupContext context)
Standard implementation handles registration of all configured
customizations: it is important that sub-classes call this
implementation (usually before additional custom logic)
if they choose to override it; otherwise customizations
will not be registered.
|
_checkNotNull, addAbstractTypeMapping, addDeserializer, addKeyDeserializer, addKeySerializer, addSerializer, addSerializer, addValueInstantiator, getModuleName, getTypeId, registerSubtypes, registerSubtypes, registerSubtypes, setAbstractTypes, setDeserializerModifier, setDeserializers, setKeyDeserializers, setKeySerializers, setMixInAnnotation, setNamingStrategy, setSerializerModifier, setSerializers, setValueInstantiators, versionpublic void setupModule(Module.SetupContext context)
SimpleModulesetupModule in class SimpleModuleprotected AnnotatedMethod _findFactory(AnnotatedClass cls, String name, Class<?>... argTypes)
Copyright © 2018 JBoss by Red Hat. All rights reserved.