我可以声明一个名为' Type'的变量吗?在斯威夫特?

时间:2017-09-28 18:16:36

标签: json swift struct decode decodable

我使用别人的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给了我一个错误: 类型成员可能未被命名为'类型',因为它会与&foo.Type'表达

我没有写API。 如果我更改变量类型的名称,则无法读取该值。

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

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容:

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

发布的评论进行操作