首页 > 解决方案 > 无法反序列化通用 T 型 Moshi

问题描述

抱歉,如果这是一个基本问题,但我是 Moshi 的新手。

所以,我有一个带有通用类型参数的类,如下所示:

class BaseResponse<T> {
   @Json(name = "message")
   var message: String? = null
   @Json(name = "data")
   var data: T? = null
   @Json(name = "meta")
   var meta: JsonObject? = null
   @Json(name = "error")
   var error: ErrorResponse? = null
}

在 GSON 中,这是自动完成的,只要我提供 @SerializedName("data") 并在我的改造方法中扩展 BaseResponse 就可以工作。但由于我无法反序列化 BaseResponse,它返回了 moshi 错误。我怎样才能解决这个问题?

标签: androidkotlingsonmoshi

解决方案


在 Moshi 中,您必须将注释显式声明为字段注释,例如@field:Json(name = "message")


推荐阅读