我有一些嵌套的 swift 类,它们使用
JSON
协议从 Decodable
自动解码。除了这个枚举外,一切正常。
json数据是大写的字符串
Open
或Fulfilled
。
如果我使用这个枚举,一切都可以完美解码:
enum Status: String, Codable {
case Open, Fulfilled
}
但是我试图让案例不使用像这样的大写字母:
enum Status: String, Codable {
case open, fulfilled
private enum CodingKeys: String, CodingKey {
case open = "Open"
case fulfilled = "Fulfilled"
}
}
这给了我一个解码错误说:
调试说明:“无法从无效的字符串值打开初始化状态”
Do
CodingKeys
枚举不是这样工作的吗?
由于枚举的原始值类型是
String
,您可以将正确的字符串直接分配给枚举项
enum Status: String, Codable {
case open = "Open"
case fulfilled = "Fulfilled"
}