У моей структуры данных есть перечисление в качестве ключа, я бы ожидал, что ниже будет автоматически декодироваться. Это ошибка или проблема с конфигурацией?
import Foundation
enum AnEnum: String, Codable {
case enumValue
}
struct AStruct: Codable {
let dictionary: [AnEnum: String]
}
let jsonDict = ["dictionary": ["enumValue": "someString"]]
let data = try! JSONSerialization.data(withJSONObject: jsonDict, options: .prettyPrinted)
let decoder = JSONDecoder()
do {
try decoder.decode(AStruct.self, from: data)
} catch {
print(error)
}
Ошибка, которую я получаю, это, похоже, путает dict с массивом.
typeMismatch (Swift.Array, Swift.DecodingError.Context(codingPath: [Необязательно (__ lldb_expr_85.AStruct. (CodingKeys in _0E2FD0A9B523101D0DCD67578F72D1DD).dictionary)], debugDescription: "Ожидается, что декодирует массив, но вместо этого найдет словарь".))