【发布时间】:2020-11-29 02:44:03
【问题描述】:
这是对Decoding Exchange Rate JSON in SwiftUI 提出的问题的后续处理。我需要一些帮助来显示费率条目。我知道这是一个字典键/值,但我不确定如何将每个字符串/双对拉出结构。
这是从 API 接收到的典型字符串格式:
{
"rates": { "CAD": 1.5497, "HKD": 9.2404, "ISK":159.0 },
"base": "EUR",
"date": "2020-11-27"
}
struct RateResult: Codable {
let rates: [String: Double]
let base, date: String
}
struct ContentView: View {
@State private var results = RateResult(rates: [:], base: "", date: "")
var curr = "EUR"
var body: some View {
Text("Base Currency = \(results.base)")
Text("Date = \(results.date)")
List(results, id: \.results.rates) { item in
VStack(alignment: .leading) {
Text(results.rates[item.key])
Text(results.rates[item.value])
}
}
.onAppear(perform: loadData)
}
func loadData() {
}
}
【问题讨论】:
-
你需要先解释你的数据。你怎么知道你将拥有这样的数据,使得你在费率中恰好有三个键?
-
如果不知道字典有多少键,用
Dictionary<Key, Value>.Keys获取键的数组 -
数据格式:总是有1个日期和1个基键/值对; rate 类别可以非常配合请求多达约 200 个键/值对。费率可以按任何顺序排列。