FasterXML / FasterXML/jackson-modules-java8
Allow Instant to be serialized as epochSecond without the fraction part
- Linguagem predominante
- Java
- Estrelas
- 425
- Forks
- 124
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
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.
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Avaliação
Esta issue ainda não foi avaliada.