如何解决如何使用`variable:[String:Codable]`可编码的结构?
struct Wrapper {
var value: [String: Any]
// type "Any" Could be String,Int or [String].
// i.g. ["a": 1,"b": ["ccc"]]
// and the keys of this dictionary are not determined
}
我挣扎了好久?。 任何人都知道如何解决它?
解决方法
您可以使用一些库,例如 AnyCodable
然后您可以通过使用 AnyCodable 类而不是 Any 来使您的结构 Codable。
struct Wrapper: Codable {
var value: [String: AnyCodable]
}
示例
let arrayWrapper: [String: Any] =
["value" :
[
"test" : ["1","2","3"],"parse" : ["4","5","6"]]
]
let jsonData = try! JSONSerialization.data(withJSONObject: arrayWrapper,options: .prettyPrinted)
do {
let decoder = JSONDecoder()
let result = try decoder.decode(Wrapper.self,from: jsonData)
print("result:",result)
} catch let error {
print("error:",error)
}
输出
result: Wrapper(value: ["parse": AnyCodable(["4","6"]),"test": AnyCodable(["1","3"])])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。