我想从服务器解码以下对象
{"USD":6385.74,"JPY":715249.73,"EUR":5582.36}
但是我想使用具有未知键和值的可解码结构。这可能吗?
此致
Spyros
答案 0 :(得分:2)
您可以尝试
let res = try? JSONDecoder().decode([String:Double].self,from:data)
print(res["USD"])
这将使您能够解码任何密钥
答案 1 :(得分:-1)
当我使用未知的JSON(因为我知道所有可能的键并需要所有键)时,我使用了SwiftyJSON库:documentation
使用它比内置JSON解码器容易得多
在您的情况下为:
var jsonString = "{\"USD\":6385.74,\"JPY\":715249.73,\"EUR\":5582.36}"
let json = JSON(parseJSON: jsonString)
然后您可以做很多事情,例如遍历键
for (key, value) in json {
if let currency = key.string {
print (currency,value)
}
}
中的文档