Gson Serialize Feld nur wenn nicht null oder nicht leer

Ich habe Anforderung, wo ich Java-Objekt in Json konvertieren müssen.

Ich benutze Gson dafür, aber ich brauche den Konverter, um nur die Nicht-Null- oder Nicht-Leerwerte zu serialisieren.

Zum Beispiel:

//my java object looks like
class TestObject{
    String test1;
    String test2;
    OtherObject otherObject = new OtherObject();
}

Nun sieht meine Gson-Instanz zum Konvertieren dieses Objekts in JSON aus

Gson gson = new Gson();
TestObject obj = new TestObject();
obj.test1 = "test1";
obj.test2 = "";

String jsonStr = gson.toJson(obj);
println jsonStr;

Im obigen Ausdruck ist das Ergebnis

{"test1":"test1", "test2":"", "otherObject":{}}

Hier wollte ich nur das Ergebnis sein

{"test1":"test1"}

Da der Test2 leer ist und otherObject leer ist, möchte ich nicht, dass sie zu JSON-Daten serialisiert werden.

Übrigens verwende ich Groovy / Grails. Wenn es also ein Plugin dafür gibt, das gut wäre, wäre es gut, wenn nicht ein Vorschlag zur Anpassung der gson-Serialisierungsklasse gemacht würde.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage