如何将CodingKeys用于符合Codable协议的枚举?
问题描述:
我有一个EmailVerificationStatus
枚举与该符合Codable
协议的String
相关类型:如何将CodingKeys用于符合Codable协议的枚举?
enum EmailVerificationStatus: String, Codable {
case unverified
case verified
}
我正在与工作的web服务发送的那些情况下大写(UNVERIFIED
/VERIFIED
)。我如何使用CodingKeys
枚举来映射这种差异?像下面的东西不起作用:
enum CodingKeys: String, CodingKey {
case unverified = "UNVERIFIED"
case verified = "VERIFIED"
}
答
好的。那很简单。无CodingKeys
需要:
enum EmailVerificationStatus: String, Codable {
case verified = "VERIFIED"
case unverified = "UNVERIFIED"
}
答
我会建议你使用结构的电子邮件...类型和嵌套你的结构中枚举CodingKeys。 CodingKeys允许您将结构变量与您的源数据案例(来自webservice)进行映射。
struct EmailVerificationStatus: String, Codable {
var unverified: String
var verified: String
enum CodingKeys: String, CodingKey {
case unverified = "UNVERIFIED"
case verified = "VERIFIED"
}
}