Ich benutze Gson mit Retrofit, und ich habe einen Fall, in dem ich ein einzelnes Nullfeld serialisieren muss, aber ich kann das globale serializeNulls () - Flag für Gson nicht einschalten, weil es den Rest meines Codes bricht. Weiß jemand, wie man das erreicht?
Folgendes habe ich versucht:
Ich konnte auch keinen Weg finden, den serialisierten JSON hinzuzufügen, da alles innerhalb von Retrofit passiert.
Ich habe dieses Problem gelöst, indem ich setSerializeNulls (true) gesetzt habe und den ursprünglichen Wert in TypeAdapter.write () in JsonWriter wiederhergestellt habe:
%Vor% Hier ist eine Erweiterung von Andriys Lösung, die nicht nur für NullableDouble
funktioniert, sondern generisch jeden Typ umschließt. Der Nachteil gegenüber plain serializeNulls()
ist, dass es erforderlich ist, die GsonForceNull
-Instanz als Wrapper zu erstellen und auf den value
innerhalb des gesamten Java-Codes zuzugreifen (obwohl geeignete Getter / Setter-Implementierungen dieses Detail verbergen können).
Beispielverwendung:
%Vor%