gpt4 book ai didi

ios - 在 SWIFT 3 中从网页中读取 JSON 格式

转载 作者:行者123 更新时间:2023-11-28 06:35:02 25 4
gpt4 key购买 nike

我正在尝试从我的网络服务器上的 JSON 文件中获取数据。在以前的 SWIFT 版本中,这是可行的:

self.url = "https://www.example.com/example"
let requestURL: URL = URL(string: self.url)!
let urlRequest: NSMutableURLRequest = NSMutableURLRequest(url: requestURL)
let session = URLSession.shared
let task = session.dataTask(with: urlRequest as URLRequest) {
(data, response, error) -> Void in

let httpResponse = response as! HTTPURLResponse
let statusCode = httpResponse.statusCode

if (statusCode == 200) {

do{

let json = try NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments) as? [[String: AnyObject]]

if let stations = json["ticket"] as? [[String: AnyObject]] {

for station in stations! {

if let status = station["status"] as? String {
self.resultStatus = status

if let name = station["name"] as? String {
self.clientName = name

if let type = station["type"] as? String {
self.ticketType = type
self.setThemeResult()
}
}
}
}

}

} catch {
print("Error with Json: \(error)")
}

}
}
task.resume()

嗯...我知道它可能有点乱,但它确实有效。 :) 在 SWIFT 3 中,xcode 对代码进行了一些更改。这个:

let json = try NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments) as? [[String: AnyObject]]

成为:

let json = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? [[String: AnyObject]]

但是现在,出现了这个错误。 this

如果有人能解释它的含义,并可能提出解决方案,我将不会感到惊讶。

提前致谢。

附言:我知道这个论坛上有一些问题可能已经包含了我的问题的答案。我对 SWIFT 中的编程太陌生了,所以我必须针对我的特定案例提出问题才能找到答案。

最佳答案

我认为您的响应是 Dictionary 而不是 Array,因此您需要编写 [String: Any] 而不是 [[字符串:任意]]

 let json = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as? [String: Any]
if let stations = json["ticket"] as? [[String: Any]] {

}

注意:如果您的响应是数组,则尝试访问数组的第一个对象以获取字典。

 if let stations = json[0]["ticket"] as? [[String: Any]] {

}

关于ios - 在 SWIFT 3 中从网页中读取 JSON 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39316166/

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