我正在尝试使用swift4解析并记录具有数组的json数据,该数组具有多个具有相同标题的数组。我在下面包含了一些原始的json数据:
{
"league": {
"alias": "MLB",
"name": "Major League Baseball",
"id": "2fa448bc-fc17-4d3d-be03-e60e080fdc26",
"date": "2018-07-07",
"games": [
{
"game": {
"id": "d9c6012e-4328-4283-9d6e-b95ff3d53106",
"status": "scheduled",
"coverage": "full",
"game_number": 1,
"day_night": "N",
"scheduled": "2018-07-07T23:15:00+00:00",
"home_team": "833a51a9-0d84-410f-bd77-da08c3e5e26e",
"away_team":
},
"game": {
"id": "d9c6012e-4328-4283-9d6e-b95ff3d53106",
"status": "scheduled",
"coverage": "full",
"game_number": 1,
"day_night": "N",
"scheduled": "2018-07-07T23:15:00+00:00",
"home_team": "833a51a9-0d84-410f-bd77-da08c3e5e26e",
"away_team":
}
}
]
};
以下代码是用于存储json数据的结构。我在Leagueinfo信息栏上收到一条错误消息,指出不符合可解码要求,但我认为问题出在游戏结构上。我不知道如何引入多个名为“游戏”的物品:
struct League: Decodable{
let league: LeagueInfo
init(league: LeagueInfo ){
self.league = league
}
}
struct LeagueInfo: Decodable{
let alias: String?
let name: String?
let id: String?
let date: String?
let games: Games?
}
struct Games{
let game: [Game]
}
struct Game: Decodable{
let id: String?
let status: String?
let coverage: String?
let scheduled: String?
let home_team: String?
let away_team: String?
let venue: [Venue]?
}
任何帮助将不胜感激!
答案 0 :(得分:0)
我正在查看您的“游戏”属性。看来您的数组不是json有效。我认为您的数组应该像这样。
json = {
"games": [
{
"game": {
"id": "d9c6012e-4328-4283-9d6e-b95ff3d53106",
"status": "scheduled",
"coverage": "full",
"game_number": 1,
"day_night": "N",
"scheduled": "2018-07-07T23:15:00+00:00",
"home_team": "833a51a9-0d84-410f-bd77-da08c3e5e26e",
"away_team": ""
}
},
{
"game": {
"id": "d9c6012e-4328-4283-9d6e-b95ff3d53106",
"status": "scheduled",
"coverage": "full",
"game_number": 1,
"day_night": "N",
"scheduled": "2018-07-07T23:15:00+00:00",
"home_team": "833a51a9-0d84-410f-bd77-da08c3e5e26e",
"away_team": ""
}
}
]
};
注意多余的花括号和逗号。