如何使用 retorfit2 创建用于解析 Json 的通用模型类?
Posted
技术标签:
【中文标题】如何使用 retorfit2 创建用于解析 Json 的通用模型类?【英文标题】:How to create universal model class for parsing Json with retorfit2? 【发布时间】:2021-11-13 23:40:54 【问题描述】:所有 API 响应的 json 结构体都是这样的: “数据”: ... , “元”: ...
但所有 API 在 data 和 meta 中都有不同的嵌套 json。我需要制作通用父 json 模型类。这是我的情况:
class FirstJsonModel
@SerializedName("data")
var data: FirstData? = null
@SerializedName("meta")
var meta: FirstMeta? = null
class FirstData
class FirstMeta
class SecondJsonModel
@SerializedName("data")
var data: SecondData? = null
@SerializedName("meta")
var meta: SecondMeta? = null
class SecondData
class SecondMeta
【问题讨论】:
你能提供一些关于你的问题的细节吗?到目前为止,您尝试过什么? 【参考方案1】:考虑到您共享的代码,您可以使用泛型类来实现这一点 -
class ApiResponseModel<T>
@SerializedName("data")
var data: T? = null
或
class ApiResponseModel<T1, T2>
@SerializedName("data")
var data: T1? = null
@SerializedName("meta")
var meta: T2? = null
如果你想使用 is for Data Classes 你可以做这样的事情 -
data class ApiResponseModel<T1, T2> (
@SerializedName("data")
var data: T1? = null,
@SerializedName("meta")
var meta: T2? = null
)
希望这会有所帮助!
【讨论】:
【参考方案2】:使用泛型类
data class Hello<D,M>(
@SerializedName("data")
var data: D? = null,
@SerializedName("meta")
var meta: M? = null
)
【讨论】:
以上是关于如何使用 retorfit2 创建用于解析 Json 的通用模型类?的主要内容,如果未能解决你的问题,请参考以下文章