所有API响应json结构符如下:{"data" {…},"meta" {…}}
但是所有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 {
}
考虑到您共享的代码,您可以使用泛型类来实现这一点-
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
}
如果你想在Data Classes中使用is,你可以这样做-
data class ApiResponseModel<T1, T2> (
@SerializedName("data")
var data: T1? = null,
@SerializedName("meta")
var meta: T2? = null
)
希望这对你有帮助!
使用泛型类
data class Hello<D,M>(
@SerializedName("data")
var data: D? = null,
@SerializedName("meta")
var meta: M? = null
)