Ich möchte Nullen für ein bestimmtes Feld oder eine Klasse zu serialisieren.Gson serialisieren Null für bestimmte Klasse oder Feld
In GSON gilt die Option serializeNulls()
für den gesamten JSON.
Beispiel:
class MainClass {
public String id;
public String name;
public Test test;
}
class Test {
public String name;
public String value;
}
MainClass mainClass = new MainClass();
mainClass.id = "101"
// mainClass has no name.
Test test = new Test();
test.name = "testName";
test.value = null;
mainClass.test = test;
Erstellen von JSON mit Gson:
GsonBuilder builder = new GsonBuilder().serializeNulls();
Gson gson = builder.create();
System.out.println(gson.toJson(mainClass));
Aktuelle ouput:
{
"id": "101",
"name": null,
"test": {
"name": "testName",
"value": null
}
}
gewünschte Ausgabe:
{
"id": "101",
"test": {
"name": "testName",
"value": null
}
}
Wie erreicht man die gewünschte Leistung?
Bevorzugte Lösung würde die folgenden Eigenschaften haben:
- Sie NICHT serialize nulls standardmäßig
- Serialize nulls für Felder mit einer bestimmten Anmerkung.
@DatoMumladze Ich aktualisierte meine Frage – Martin
Ich konnte diese Funktion in Gson nicht finden. Hier ist ein interessanter [link] (https://mindfirejavaexperts.wordpress.com/2014/03/14/how-to-use-gson-library/) Oder Sie können Jackson verwenden, um Objekt zu json zu serialisieren und Nullwerte für auszuschließen bestimmte Felder mit dieser Annotation '@JsonSerialize (include = JsonSerialize.Inclusion.NON_NULL)' –
Mögliches Duplikat von [Ausschließen bestimmter Felder von Serialisierung basierend auf dem Wert in GSON] (http://stackoverflow.com/questions/13120354/excluding-certain -fields-from-serialization-basierte-on-value-in-gson) – tima