Campo Gson Serializar solo si no es nulo o no está vacío

Tengo un requisito donde necesito convertir el objeto java a json.

Estoy usando Gson para eso, pero necesito el convertidor para serializar solo los valores no nulos o no vacíos.

Por ejemplo:

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

Ahora mi instancia de Gson para convertir este objeto a json parece

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

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

En la impresión anterior, el resultado es

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

Aquí solo quería que el resultado fuera

{"test1":"test1"}

Dado que el test2 está vacío y el otro objeto está vacío, no quiero que se serialicen a datos json.

Por cierto, estoy usando Groovy / Grails, así que si hay algún complemento para esto sería bueno, si no cualquier sugerencia para personalizar la clase de serialización de gson sería buena.

Respuestas a la pregunta(3)

Su respuesta a la pregunta