我有一个API JSON响应,如下所示。我想解码JSON以获得字典[String:Double]
的数组,如[{"2020-01-01" : 0.891186}, {"2020-01-02" : 0.891186}]
。
{
"rates": {
"2020-01-01": {
"EUR": 0.891186
},
"2020-01-02": {
"EUR": 0.891186
},
"2020-01-03": {
"EUR": 0.895175
},
"2020-01-04": {
"EUR": 0.895175
}
}
}
我写了如下解码代码:
do {
let data = try Data(contentsOf: appURL)
let decoder = JSONDecoder()
let response = try decoder.decode(Rates.self, from: data)
response.rates
} catch let jsonError {
print(jsonError)
}
我试着定义一个结构体:
struct Rates: Codable, Hashable {
let rates: Point
}
struct Point {
}
但是我不知道应该在struct Point
中写什么,因为日期不是一个一致的字段。
2条答案
按热度按时间hi3rlvi21#
下面是两种可能的解决方案,一种使用结构
Point
,另一种使用字典第一个解是
Point
然后创建一个自定义的
init(from:)
,我们首先将json解码为一个字典[String: [String: Double]]
,然后将该字典Map到Point
数组中。这是第二个解决方案,使用字典
z4bn682m2#
你可以这样做