Невозможно десериализовать Generi c Type T Moshi - PullRequest
1 голос
/ 26 марта 2020

Извините, если это базовый c вопрос, но я новичок в Моши.

Итак, у меня есть класс с Generi c Type Paramter следующим образом:

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. Как я могу это исправить?

1 Ответ

1 голос
/ 26 марта 2020

В Moshi вы должны явно объявить свои аннотации как полевые аннотации, например @field:Json(name = "message")

...