实现此目的的方法是为相关类创建自定义序列化程序。在允许Gson以默认方式创建JSON对象之后,请根据其值删除要排除的属性。
public class SerializerForMyClass implements JsonSerializer<MyClass> { @Override public JsonElement serialize(MyClass obj, Type type, JsonSerializationContext jsc) { Gson gson = new Gson(); JsonObject jObj = (JsonObject)gson.toJsonTree(obj);if(obj.getMyProperty()==0){ jObj.remove("myProperty"); } return jObj; }}并在用于此类的应用程序中用于序列化的Gson对象中注册新的序列化器。
GsonBuilder gsonBuilder = new GsonBuilder();gsonBuilder.registerTypeAdapter(MyClass.class, new SerializerForMyClass());Gson gson=gsonBuilder.create();gson.toJson(myObjectOfTypeMyClass);



