私は過去 3 ~ 4 時間、このばかげたものにこの列挙型を正しくデコードさせようとしてきましたが、今ではこれに非常に不満を感じています! json
次のような API から返される文字列があります。
[
{
"contractType": 0
}
]
THAT を という列挙型にマップしようとしていますContractType
。ContractType
これは私の列挙型全体です
enum ContractType: Int {
case scavenger = 0
}
Codable
これは、プロトコルに準拠させようとした私の拡張機能です。
extension ContractType: Codable {
enum Key: Int, CodingKey {
case rawValue
}
enum CodingError: Error {
case unknownValue
}
init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: Key.self)
let rawValue = try? container.decode(Int.self, forKey: .rawValue)
switch rawValue {
case 0:
self = .scavenger
default:
throw CodingError.unknownValue
}
}
func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: Key.self)
switch self {
case .scavenger:
try container.encode(0, forKey: .rawValue)
}
}
}
私は一体何を間違っているのですか!? どんな助けでも大歓迎です!