All API response json structer is like: { "data":{ ... }, "meta":{ ... } }
But all API has different nested json inside data and meta. I need make universal parent json model class. This is my case:
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 {
}
You can use a generic class to achieve this, considering the code you have shared -
class ApiResponseModel<T> {
@SerializedName("data")
var data: T? = null
}
OR
class ApiResponseModel<T1, T2> {
@SerializedName("data")
var data: T1? = null
@SerializedName("meta")
var meta: T2? = null
}
If you want to use is for Data Classes you can do something like this -
data class ApiResponseModel<T1, T2> (
@SerializedName("data")
var data: T1? = null,
@SerializedName("meta")
var meta: T2? = null
)
Hope this helps!