【发布时间】:2019-05-26 04:30:01
【问题描述】:
我正在尝试解析我从第 3 方 API 收到的 JSON 响应。
响应返回一个带有 N 个子对象的 json 对象。
孩子都符合相同的模型/类,但孩子的数量可以改变。
如果它是一个对象数组,这将是微不足道的,但我不确定如何处理一个包含 N 个对象的对象。
我认为我需要一个自定义类型适配器,但我似乎无法完成它。
这是 JSON:
"api":{
"results": 94
"leagues": {
"1":{
"league_id":"1"
"name":"2018 Russia World Cup"
"country":"World"
"season":"2018"
"season_start":"2018-06-14"
}
"2":{...}
"3":{...}
"4":{...}
...
"N":{...}
}
}
所以基本上它是我要解析的“联盟”对象。
我希望最终得到一个List<League>
例如,根对象可以有这个模型:
class Api {
val results: Int
val leagues: List<League>
}
【问题讨论】:
-
JSON 永远不是对象;它总是一个字符串。请添加预期的输出,因为不清楚您想要实现什么。要解析 JSON,您总是使用
JSON.parse(str)。 -
你想用 Java 实现吗?
-
我是用 kotlin 写的,但是 java 没问题。我认为我需要的自定义类型适配器正是我想要的灵感来源。
-
@AndersPedersen 我认为,如果您想将联赛存储为列表。最好重新设计您的 json 数据,如下所示。
{ "api": { "results": 94, "leagues": [ { "league_id": "1", "name": "2018 Russia World Cup", "country": "World", "season": "2018", "season_start": "2018-06-14" }, {}, {}, {}, {} ] } } -
我同意,但我无法控制数据输出