api - 使用改造 Kotlin 的 JSON 对象
问题描述
我有来自 api 的数据,如下所示:
{
"id": 2015,
"area": {
"id": 2081,
"name": "France"
},
"name": "Ligue 1",
"code": "FL1",
"emblemUrl": null,
"plan": "TIER_ONE",
"currentSeason": {
"id": 499,
"startDate": "2019-08-09",
"endDate": "2020-05-31",
"currentMatchday": 21,
"winner": null
},
"seasons": [
{
"id": 499,
"startDate": "2019-08-09",
"endDate": "2020-05-31",
"currentMatchday": 21,
"winner": null
},
{
"id": 177,
"startDate": "2018-08-10",
"endDate": "2019-05-25",
"currentMatchday": 38,
"winner": null
},
{
"id": 17,
"startDate": "2017-08-04",
"endDate": "2018-05-27",
"currentMatchday": 38,
"winner": {
"id": 524,
"name": "Paris Saint-Germain FC",
"shortName": "PSG",
"tla": "PSG",
"crestUrl": "https://upload.wikimedia.org/wikipedia/en/a/a7/Paris_Saint-Germain_F.C..svg"
}
},
{
"id": 333,
"startDate": "2016-08-12",
"endDate": "2017-05-20",
"currentMatchday": null,
"winner": null
},
{
"id": 334,
"startDate": "2015-08-07",
"endDate": "2016-05-14",
"currentMatchday": null,
"winner": null
},
{
"id": 335,
"startDate": "2014-08-08",
"endDate": "2015-05-23",
"currentMatchday": null,
"winner": null
},
{
"id": 336,
"startDate": "2013-08-09",
"endDate": "2014-05-17",
"currentMatchday": null,
"winner": null
},
{
"id": 337,
"startDate": "2012-08-10",
"endDate": "2013-05-26",
"currentMatchday": null,
"winner": null
},
{
"id": 338,
"startDate": "2011-08-06",
"endDate": "2012-05-20",
"currentMatchday": null,
"winner": null
}
],
"lastUpdated": "2020-01-25T13:55:00Z"
}
我尝试在 kotlin 中获取它,但我不知道如何接收“季节”数组。这是我的带有数据模型的 kotlin 类
data class CompetitionModel(
@SerializedName("id")
val id: String?,
@SerializedName("area")
val area: AreaModel?,
@SerializedName("name")
val name: String?,
@SerializedName("code")
val code: String?,
@SerializedName("emblemUrl")
val emblemUrl: String?,
@SerializedName("plan")
val plan: String?,
@SerializedName("currentSeason")
val currentSeason: CurrentSeasonModel?,
@SerializedName("seasons")
val seasons: CurrentSeasonModel,
@SerializedName("lastUpdated")
val lastUpdated: String?
data class AreaModel(
@SerializedName("id")
val id: String = "",
@SerializedName("name")
val name: String = ""
data class CurrentSeasonModel(
@SerializedName("id")
val id: String = "",
@SerializedName("startDate")
val startDate: String = "",
@SerializedName("endDate")
val endDate: String = "",
@SerializedName("currentMatchday")
val currentMatchday: String = "",
@SerializedName("winner")
val winner: String = ""
class SeasonModel(
var seasons: CurrentSeasonModel
因为我的 SeasonModel (当我尝试添加 [] 时)输出错误:“参数必须具有类型注释” - 但我将 CurrentSeasonModel 作为我的类型 - 我做错了什么?
解决方案
我假设您想声明CurrentSeasonModel
. 在 Kotlin 中,您可以将其声明为Array<CurrentSeasonModel>
,但在您的用例中,我建议您使用List<CurrentSeasonModel>
.
推荐阅读
- entity - FPDF 的 HTML 箭头实体、Dec 或十六进制代码
- python - 创建一个函数/循环以对数据框中的所有列单独执行 Python 命令
- sql - 使用 group by 在 Athena 中计算 Mode()
- git - 如何处理“此分支提前 n 次提交,开发后 m 次提交”?
- javascript - 未捕获(承诺中) FirebaseError:缺少权限或权限不足。在新 Rr
- google-apps-script - 将数据输入 Google 表格后以表格形式显示
- javascript - 为什么减去天数不允许我超过 27
- f# - Thoth.Json 得到结果
- javascript - AG Grid表数据复制到剪贴板在反应中不起作用
- javascript - Emitted Event 无法导致调用绑定方法