FasterXML / FasterXML/jackson-modules-java8
Allow Instant to be serialized as epochSecond without the fraction part
- Ngôn ngữ chính
- Java
- Star
- 425
- Fork
- 124
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
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.
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Đánh giá
Issue này chưa được đánh giá.