我正在解析需要从服务器上的字典(这是遗留数据格式)转换的响应 - 简单地说是客户端上的字符串数组。因此,我想要解码名为“数据”的密钥。作为字典,所以我可以遍历键并在客户端创建一个字符串数组。
init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
do {
let some_data_dictionary = try values.decode([String:Any].self, forKey: CodingKeys.data)
for (kind, values) in some_data_dictionary {
self.data_array.append(kind)
}
} catch {
print("we could not get 'data' as [String:Any] in legacy data \(error.localizedDescription)")
}
}
我得到的错误是:Ambiguous reference to member 'decode(_:forKey:)'
答案 0 :(得分:1)
看起来像Swift' Codable'不支持任何或使用[String:Any],所以在这里使用这篇文章Swift 4 decodable nested json with random key attributes
我能够为一个我不会使用的名为LegacyData的类创建一个结构,然后将键解包为一个字符串数组
https://api.instagram.com/v1/users/self/media/recent/?access_token=ACCESS-TOKEN