gpt4 book ai didi

从 URL 进行 Swift JSON 解码

转载 作者:行者123 更新时间:2023-11-30 10:48:22 26 4
gpt4 key购买 nike

我的问题很简单,但我找不到解决方案。我知道有很多关于如何以其他方式做到这一点的教程,但我想保持简单。

如果 JSON html 如下所示,我知道如何获取数据:

{"amount":"224.60","currency":"USD"}

但我不知道如何获取数据,如果它看起来像这样:

"main":{"temp":280.3,"pressure":1023,"humidity":75,"temp_min":280.15,"temp_max":280.37}

如何判断我需要从“main”获取?

我的代码如下所示:

struct main: Decodable {
let humidity: String

}

let url = "http://api.openweathermap.org/data/2.5/weather?q=Vilnius,LTU&appid=8a3e3ef324cffc653933f3216efcf80f"
let urlObj = URL(string: url)

URLSession.shared.dataTask(with: urlObj!) {(data, response, error) in
do {
var airs = try JSONDecoder().decode(main.self, from: data!)


print(airs.humidity)

} catch {
print("error")
}

}.resume()

当我试图获得金额时,它与我的第一个示例配合得很好。但它不适用于我的第二个示例。

最佳答案

你可以试试

struct Root: Codable {
let main: Main
}

struct Main: Codable {
let temp: Double
let pressure, humidity: Int
let tempMin, tempMax: Double

enum CodingKeys: String, CodingKey {
case temp, pressure, humidity
case tempMin = "temp_min"
case tempMax = "temp_max"
}
}
<小时/>
var airs = try JSONDecoder().decode(Root.self, from: data!)

或者

  do {

let con = try JSONSerialization.jsonObject(with:data, options: [:]) as! [String:Any]
let dataCC = con["main"] as! [String:Any]
let finData = try JSONSerialization.data(withJSONObject:dataCC, options: [:])
let userCon = try JSONDecoder().decode(Main.self, from:finData)
print(userCon)

}
catch {

print(error)
}

关于从 URL 进行 Swift JSON 解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55286830/

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