FasterXML / FasterXML/jackson-modules-java8
Allow Instant to be serialized as epochSecond without the fraction part
- 主要言語
- Java
- スター
- 425
- フォーク
- 124
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
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.
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
評価
この issue はまだ評価されていません。