我有一个EmailVerificationStatus
枚举,其关联类型为String
,符合Codable
协议:
enum EmailVerificationStatus: String, Codable {
case unverified
case verified
}
我正在使用的Web服务以大写形式发送这些情况(UNVERIFIED
/VERIFIED
)。如何使用CodingKeys
枚举来Map这种差异?类似以下内容的内容不起作用:
enum CodingKeys: String, CodingKey {
case unverified = "UNVERIFIED"
case verified = "VERIFIED"
}
4条答案
按热度按时间5q4ezhmt1#
好的。很简单。不需要
CodingKeys
:hiz5n14c2#
我通常是这么做的:
7y4bm7vi3#
我建议你使用struct作为Email...类型,并将枚举CodingKeys嵌套在你的struct中。CodingKeys允许你将你的struct变量Map到你的源数据案例(来自webservice)。
3pmvbmvn4#
当枚举具有关联值时,另一个可能的解决方案是将
Codable
兼容性放入扩展中,这样它就不会抱怨您实现了CodingKeys枚举。大概是这样的