gpt4 book ai didi

swift - 如何从 api 返回已解析的 JSON?

转载 作者:行者123 更新时间:2023-12-05 06:58:46 41 4
gpt4 key购买 nike

这是我第一次尝试从 api 解析 JSON。我尝试打印 JSON 但控制台中没有任何内容。我正在尝试从我这里获取半径范围内的邮政编码。

这是 JSON 在 api 网站上的样子 image of website

我的可编码结构:

struct Zip: Codable {
let Distance: Int
let City: String
let County: String
let StateAbbr: String
let ZipCode: String
}
struct Zips: Codable{
var results: [Zip]
}

viewDidLoad

    override func viewDidLoad() {
super.viewDidLoad()
setView()
let urlString = "https://zipcodedownload.com/Radius?firstzipcode=30316&radiuscoverage=10&format=json&pagenumber=1&key=9e2b15aa17f9434cbe62ddc32b40a521"
let url = URL(string: urlString)
guard url != nil else {
return
}
let session = URLSession.shared
let dataTask = session.dataTask(with: url!) { (data, response, error) in
if error == nil && data != nil{
let decoder = JSONDecoder()
do{
let resultsZips = try decoder.decode(Zips.self, from: data!)
print(resultsZips)
}
catch{
print(error)
}
}
}
dataTask.resume()
}

有人可以指出我正确的方向或告诉我我做错了什么吗?

最佳答案

  1. 您正在获取一组 Zip(不是包含它们的 results 键)。所以首先,您需要更改解码器:
decoder.decode([Zip].self, from: data!)
  1. 有时 Distance 不是四舍五入的。因此,您需要将其类型更改为 Double

  2. 你现在会得到答案,但你应该先阅读你的 API 文档,也许其中一些是可选的,或者可能是其他东西🤷🏻‍♂️

关于swift - 如何从 api 返回已解析的 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64545053/

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