假设具有以下表示服务器响应的参数化数据类:
public class SocketResponse<T> {
private String responseMessage;
private int responseCode;
private T entity;
}
我知道在运行时T是什么类型。莫希支持泛型类型适配器的方式和Gson一样吗?使用Gson id执行以下操作来解析它。
Type typeA = new TypeToken<SocketResponse<MyResponseA>>(){}.getType();
SocketResponse<MyResponseA> responseA = getResponse("json", typeA);
Type typeB = new TypeToken<SocketResponse<MyResponseB>>(){}.getType();
SocketResponse<MyResponseB> responseB = getResponse("json", typeB);
private String getResponse(Type t){
return gson.fromJson(response, type);
}
3条答案
按热度按时间h5qlskok1#
与Gson的TypeToken API相比,莫希使用Types上的工厂方法来获取Java类型。
然后,使用JsonAdapter反序列化和序列化您的类型,就像Gson的TypeAdapter一样。
gzjq41n42#
对于更复杂的情况,如果
T
等于List<MyResponseA>
这样的泛型类型,则可以这样做,例如(在kotlin
中):ehxuflar3#
我主要使用GSON,但也许类似的东西?