package pro.gravit.launcher.request; import java.lang.reflect.Type; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; public class JsonResultSerializeAdapter implements JsonSerializer { private static final String PROP_NAME = "type"; @Override public JsonElement serialize(ResultInterface src, Type typeOfSrc, JsonSerializationContext context) { // note : won't work, you must delegate this JsonObject jo = context.serialize(src).getAsJsonObject(); String classPath = src.getType(); jo.add(PROP_NAME, new JsonPrimitive(classPath)); return jo; } }