我可以在 Swift 中声明一个名为 'Type' 的变量吗?
Can I to declare a variable named 'Type' in Swift?
我用的是别人的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',因为它会与 'foo.Type' 表达式冲突。
我没有写API。
如果我更改变量的名称 Type,我将无法读取值。
我可以在不修改 API 的情况下使用 Decodable Struct 吗?
您可以像下面这样使用:
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
发表的评论
我用的是别人的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',因为它会与 'foo.Type' 表达式冲突。
我没有写API。 如果我更改变量的名称 Type,我将无法读取值。
我可以在不修改 API 的情况下使用 Decodable Struct 吗?
您可以像下面这样使用:
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