gpt4 book ai didi

ios - Swift 4 中的 JSON 解析帮助 - 数据结构问题?

转载 作者:可可西里 更新时间:2023-11-01 02:00:13 26 4
gpt4 key购买 nike

这里和 Swift 的新内容,所以请放轻松..

在尝试解析包含嵌套字典的 JSON 时,我有点卡住了。我想我创建的数据结构有问题,我已经尽一切努力纠正但仍然遇到同样的问题。

这是我尝试使用的 JSON api: https://api.coindesk.com/v1/bpi/currentprice.json

这些是我创建的用于建模的数据结构:

struct base: Decodable {

let disclaimer: String
let bpi: [Bpi]
}

struct Bpi: Decodable {
let USD: [USD]
}

struct USD: Decodable {
let rate_float: Float
}

这是我在 VC 中的代码:

 override func viewDidLoad() {
super.viewDidLoad()

let jsonURLString = "https://api.coindesk.com/v1/bpi/currentprice.json"

guard let url = URL(string: jsonURLString) else {return}

URLSession.shared.dataTask(with: url) { (data, response, err) in

guard let data = data else {return}

do {
let bitcoinData = try JSONDecoder().decode(base.self, from: data)
print(bitcoinData.bpi)
} catch {
print("error")
}

} .resume() // Fires off the session
}

我可以从免责声明字符串或根字典中的其他字符串中获取数据,仅此而已。我无法用嵌套的字典进一步解析任何东西——它只是抛回捕获错误。

这是 JSON:

{
"time": {
"updated": "Nov 2, 2017 06:08:00 UTC",
"updatedISO": "2017-11-02T06:08:00+00:00",
"updateduk": "Nov 2, 2017 at 06:08 GMT"
},
"disclaimer": "This data was produced from the CoinDesk Bitcoin Price Index (USD). Non-USD currency data converted using hourly conversion rate from openexchangerates.org",
"chartName": "Bitcoin",
"bpi": {
"USD": {
"code": "USD",
"symbol": "$",
"rate": "6,889.4013",
"description": "United States Dollar",
"rate_float": 6889.4013
},
"GBP": {
"code": "GBP",
"symbol": "£",
"rate": "5,184.4053",
"description": "British Pound Sterling",
"rate_float": 5184.4053
},
"EUR": {
"code": "EUR",
"symbol": "€",
"rate": "5,910.4587",
"description": "Euro",
"rate_float": 5910.4587
}
}
}

我在这里明显做错了什么吗?

提前感谢您的帮助,如果我的格式很糟糕,我们深表歉意!

最佳答案

尝试使用以下模型,它可以工作 - bpiUSD 都不是数组,只是单个值:

struct base: Decodable {

let disclaimer: String
let bpi: Bpi
}

struct Bpi: Decodable {
let USD: USD
}

struct USD: Decodable {
let rate_float: Float
}

关于ios - Swift 4 中的 JSON 解析帮助 - 数据结构问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47070528/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com