如何在 Swift 中使用名为“Type”的键解码 JSON? [重复]

问题描述 投票:0回答:1

我正在使用别人的API。它返回给我的 JSON 如下:

[{"ID": 123,
 "Name": "My Game Api",
 "Type": "Racing",
 "Num": 0,
 "Country": "England"
}]

我定义了一个结构体来解析 JSON,如下所示:

struct MyResult : Decodable{
    var ID : Int?
    var Name : String?
    var Type : String?
    var Num : Int?
    var Country : String?
}
// Using..
    let games = try JSONDecoder().decode([MyResult].self, from: data!)

当然 Xcode 给了我一个错误:

Type 成员不能命名为“Type”,因为它会与“foo.Type”表达式冲突。

API不是我写的。 如果我更改变量Type的名称,我将无法读取该值。

我可以在不修改 API 的情况下使用 Decodable Struct 吗?

json swift struct decode decodable
1个回答
1
投票

您可以像下面这样使用:

struct MyResult : Decodable {
    var ID : Int?
    var Name : String?
    var type : String?
    var Num : Int?
    var Country : String?

    private enum CodingKeys : String, CodingKey {
        case ID, Name, type = "Type", Num, Country
    }
}

尝试关注

Hamish

发布的评论
© www.soinside.com 2019 - 2024. All rights reserved.