我遇到过这样的情况,从API返回的JSON有一个名为extension的字段,这是Swift中的保留字。我已经找了两个小时了,但我似乎找不到任何解决办法。以前有没有人遇到过这种情况:
public struct PhoneNumber: Codable { var phoneNumber: String var extension: String var isPrimary: Bool var usageType: Int}
public struct PhoneNumber: Codable {
var phoneNumber: String
var extension: String
var isPrimary: Bool
var usageType: Int
}
字符串关键字“extension”不能用作此处的标识符
0mkxixxg1#
只需要在变量名后面加上反引号,让编译器认为它是一个变量,而不是一个关键字。
var `extension`: String
字符串
yws3nbqq2#
我也遇到过类似的“返回”问题。你可以用CodingKeys解决。
public struct PhoneNumber: Codable { enum CodingKeys: String, CodingKey { case phoneNumber case extensionString = "extension" case isPrimary case usageType } var phoneNumber: String var extensionString: String var isPrimiry: Bool var usageType: Int}
enum CodingKeys: String, CodingKey {
case phoneNumber
case extensionString = "extension"
case isPrimary
case usageType
var extensionString: String
var isPrimiry: Bool
字符串因为你不能把一个属性叫做“extension”,所以你可以用类似的名字来命名它,但是使用CodingKeys来告诉你对象JSON中的键是什么。
2条答案
按热度按时间0mkxixxg1#
只需要在变量名后面加上反引号,让编译器认为它是一个变量,而不是一个关键字。
字符串
yws3nbqq2#
我也遇到过类似的“返回”问题。你可以用CodingKeys解决。
字符串
因为你不能把一个属性叫做“extension”,所以你可以用类似的名字来命名它,但是使用CodingKeys来告诉你对象JSON中的键是什么。