Serialisieren von Java 8 LocalDate als yyyy-mm-dd mit Gson
Ich bin mit Java 8 und die neuesten RELEASE
version (via Maven) von Gson.
Wenn ich serialisieren eines LocalDate
bekomme ich so etwas wie diese
"birthday": {
"year": 1997,
"month": 11,
"day": 25
}
wo ich lieber gewesen wäre "birthday": "1997-11-25"
. Tut Gson unterstützen auch die knapperen format out-of-the-box, oder muss ich implementieren Sie eine benutzerdefinierte serializer für LocalDate
s?
(Ich habe versucht gsonBuilder.setDateFormat(DateFormat.SHORT)
, aber das scheint nicht, einen Unterschied zu machen.)
- stackoverflow.com/questions/6873020/gson-date-format sollten Sie in die richtige Richtung.
- Sie würden wahrscheinlich need to install a benutzerdefinierte TypeAdapter
- Blick auf die Klassen in
com.google.gson.internal.bind
es gibt keine Art adapter fürLocalDate
(in gson 2.7). - Gute Idee. Wenn Sie möchten, posten Sie Ihren Kommentar als eine Antwort, ich werde es akzeptieren.
- Nein, dass ist ok, Es löst nicht wirklich das problem. Ich denke, deine Antwort ist besser für die zukünftigen Leser.
- Das ist auch gut. Thx.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bis auf weiteres, ich habe implementiert eine benutzerdefinierte serializer etwa so:
Installiert werden kann, z.B. so:
Verwende ich die folgenden, unterstützt Lesen/schreiben und null-Werte:
Registriert, da @Drux sagt:
BEARBEITEN 2019-04-04 EINE einfachere Umsetzung
Die Sie hinzufügen können
null
Unterstützung durch die Registrierung dernullSafe()
eingewickelt version:jsonReader.nextNull()
korrekt zu konsumierennull
Werte.Kotlin-version, die unterstützt das serialisieren und Deserialisieren von:
Melden Sie sich mit Ihrer GsonBuilder. Wrap mit
nullSafe()
fürnull
Unterstützung: