【发布时间】:2021-10-26 01:44:41
【问题描述】:
我想从 API 解析一个 json 文件。我从 API 得到这个 json(只是一个例子,我可以轮询我喜欢的任何硬币):
{
"ethereum": {
"usd": 3228.32,
"usd_market_cap": 378715635680.9308,
"usd_24h_vol": 20454034072.297222,
"usd_24h_change": -0.0033300457476910226,
"last_updated_at": 1629930233
},
"bitcoin": {
"usd": 49100,
"usd_market_cap": 923292263228.3533,
"usd_24h_vol": 33433401406.230736,
"usd_24h_change": 1.4329298489913256,
"last_updated_at": 1629930192
}
}
所以我做了两个结构来匹配json:
struct Coindata: Codable {
var bitcoin: Price?
var ethereum: Price?
}
struct Price: Codable {
var usd: Double?
var usd_market_cap: Double?
var usd_24h_vol: Double?
var usd_24h_change: Double?
var last_updated_at: Int?
}
以上工作正常,我可以读出不同的字段。但我不希望它是一组固定的硬币,并在“Coindata”结构中为我想要轮询的每个硬币写一个新成员。有没有一种好方法可以使这种动态化?例如,一个接收数组字符串的函数,我可以在其中写入我想要的硬币。像这样:
array = ["bitcoin","ethereum","cardano","tether"]
pollCoinData(array)
我这样做是为了解析:
let decoder = JSONDecoder()
let coinData = try decoder.decode(Coindata.self, from: data!)
感谢您的任何建议!
【问题讨论】:
-
@ElTomato 这不是很有帮助,你是什么意思?
标签: json swift xcode api parsing