对于标准POJO,我们可以使用以下
GsonBuilder gson = new GsonBuilder();
gson.registerTypeAdapter(MyType2.class, new MyTypeAdapter());
gson.registerTypeAdapter(MyType.class, new MySerializer());
gson.registerTypeAdapter(MyType.class, new MyDeserializer());
gson.registerTypeAdapter(MyType.class, new MyInstanceCreator());
如果POJO是通用的怎么样? Gson user guide没有提到它。下面是我的代码,但它不是正确的。
gsonBuilder.registerTypeAdapter(CustomResponse<POJOA>.getClass(), new POJOADeserializer());
gsonBuilder.registerTypeAdapter(CustomResponse<POJOB>.getClass(), new POJOBDeserializer());
gsonBuilder.registerTypeAdapter(CustomResponse<POJOC>.getClass(), new POJOCDeserializer());
答案 0 :(得分:6)
而不是这样做:
gsonBuilder.registerTypeAdapter(CustomResponse<POJOA>.getClass(), new POJOADeserializer());
注册你的反序列化器:
gsonBuilder.registerTypeAdapter(
new TypeToken<CustomResponse<POJOA>>(){}.getType(), new POJOADeserializer());