快速编码与保留字



我遇到过这样一种情况,即从 API 返回的 JSON 有一个名为 extension 的字段,这是 Swift 中的保留字。当我尝试使用它时,我的可编码物正在爆炸。

我已经搜索了过去两个小时,但我似乎找不到任何解决方案。

以前有没有人遇到过这个:

public struct PhoneNumber: Codable {
var phoneNumber: String
var extension: String
var isPrimary: Bool
var usageType: Int
}

关键字"扩展"不能在此处用作标识符

只需在变量名称中添加反引号,即可使编译器认为它是一个变量,而不是关键字。

var `extension`: String

我在"返回"方面遇到了类似的问题。 您可以使用编码键四处走动。

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
}

由于您不能将属性称为"扩展",因此您可以将其命名为类似的东西,但使用CodingKeys告诉您对象JSON中的键是什么。

相关内容

  • 没有找到相关文章

最新更新