Allow Instant to be serialized as epochSecond without the fraction part
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Beginne mit InstantSerializerBase.serialize(T value, JsonGenerator generator, SerializerProvider provider) und der dort gezeigten Behandlung von Zeitstempeln und Nanosekunden. Verfolge, wie @JsonFormat(shape = JsonFormat.Shape.NUMBER) und die Mapper-Features diesen Pfad auswählen, und ermittle anschließend die vorgesehene Standardkonfiguration zum Weglassen des Nachkommateils. Als erledigt gilt die Aufgabe, wenn ein Instant-Epoch-Zeitstempel als ganzzahlige Epochensekundenzahl serialisiert wird, ohne einen benutzerdefinierten Getter zu benötigen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
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.
- Vorherrschende Sprache
- Java
- Sterne
- 425
- Forks
- 125
- Ø Merge
- 19 Min.
- Gemergte PRs (30 T.)
- 1
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus FasterXML/jackson-modules-java8
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 72/100
-
Wrap `DateTimeException` Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
FasterXML/jackson-modules-java8#382 · 3 Kommentare ·
-
date-time-config
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
FasterXML/jackson-modules-java8#374 · 31 Kommentare · 1 Reaktion ·
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
FasterXML/jackson-modules-java8#310 · 1 Kommentar ·
-
test-needed
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
FasterXML/jackson-modules-java8#304 · 3 Kommentare ·
Alle Issues in FasterXML/jackson-modules-java8
Ähnliche Issues
-
executions.Query — startDate and timeRange filters are sent with inverted comparison operators Offenarea/plugin
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
kestra-io/plugin-kestra#190 ·
-
litertlm-android AAR ships no consumer ProGuard rules → "mid == null" SIGABRT in minified apps Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
google-ai-edge/LiteRT-LM#3739 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
integra-team-red/meet-map#249 ·
-
[Studio][Bug] Cancelled create-user dialog keeps the password and admin switch for the next attempt Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
apache/rocketmq-dashboard#5064 ·
-
Consent portal: creating a duplicate Purpose shows a generic error instead of "already exists" Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
wso2/dpdp-accelerator#287 ·