FasterXML / FasterXML/jackson-modules-java8
Allow Instant to be serialized as epochSecond without the fraction part
- Vorherrschende Sprache
- Java
- Sterne
- 425
- Forks
- 124
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
I have an `Instant` field that represents an epoch timestamp in seconds.
```
@JsonProperty("registered_at")
@JsonFormat(shape = JsonFormat.Shape.NUMBER)
private Instant registeredAt;
```
the mapper is configured this way
```
.featuresToDisable(ADJUST_DATES_TO_CONTEXT_TIME_ZONE,
FAIL_ON_UNKNOWN_PROPERTIES,
WRITE_DATES_AS_TIMESTAMPS,
SORT_PROPERTIES_ALPHABETICALLY)
```
However when this gets serialized as
```
"registered_at" : 1420324047.000000000
```
By looking at the code there's no way to serialize this value as epoch seconds using the standard mechanism.
`InstantSerializerBase.serialize(T value, JsonGenerator generator, SerializerProvider provider)`
```
if (useTimestamp(provider)) {
if (useNanoseconds(provider)) {
generator.writeNumber(DecimalUtils.toBigDecimal(
getEpochSeconds.applyAsLong(value), getNanoseconds.applyAsInt(value)
));
return;
}
generator.writeNumber(getEpochMillis.applyAsLong(value));
return;
}
```
The only option is to use :
```
@JsonGetter("registered_at")
public long getRegisteredAtEpoch() {
return registeredAt.getEpochSecond();
}
```
It could be nice if there could be way to tell jackson to avoid serializing the fraction part.
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Bewertung
Dieses Issue wurde noch nicht bewertet.