具有相同名称的json数组

时间:2018-07-09 01:49:57

标签: json swift4

我正在尝试使用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]?
}

任何帮助将不胜感激!

1 个答案:

答案 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": ""
            }
        }
    ]
};

注意多余的花括号和逗号。