gpt4 book ai didi

ALAMOFIRE 的 JSON_encode

转载 作者:行者123 更新时间:2023-11-30 12:44:06 28 4
gpt4 key购买 nike

我有一个非常简单的 Swift 代码来检索 JSON 数据。但不知怎的,它无法正常工作。

Alamofire.request("*URL*").validate().responseJSON { response in
print(response.result.value)
if response.result.isSuccess {
if let userList:[[String:Any]] = response.result.value as? [[String:Any]] {
for user:[String:Any] in userList {
if let userName = user["name"] as? String {
self._myList.append(User(name: userName, value: true))
}
}
}
self.tableView.reloadData()
} else {
print(response.result.error)
}
}

在执行过程中,我在控制台中收到此错误消息:

可选(Alamofire.AFError.responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(错误域= NSCocoaErrorDomain代码= 3840“字符0周围的值无效。” UserInfo = {NSDebugDescription =字符0周围的值无效。})))

调用 Alamofire.request 后的打印在控制台中显示“nil”。

我不明白的是,如果我使用 .responseString 而不是 .responseJSON (但它只显示一个字符串),它就可以工作。我确实需要使用 .responseJSON 因为我需要解析结果。

出现在网络浏览器上的 JSON 也非常简单:

[{"name":"MrX","value":"0"}]

有什么想法吗?

米卡。

最佳答案

用这个

        import Alamofire
import SwiftyJSON

let baseURL: String = "http://baseURL.com"
Alamofire.request(baseURL)
.responseJSON { response in

guard response.result.error == nil else {
// got an error in getting the data, need to handle it
print("error calling GET")
print(response.result.error!)
return
}

if let value = response.result.value {

let json = JSON(value) // JSON comes from SwiftyJSON
print(json) // to see the JSON response
let userName = json["name"].array // .array comes from SwiftyJSON
for items in userName! {
self._myList.append(User(name: items, value: true))
}

DispatchQueue.main.async {
self.tableView?.reloadData()
}

}
}

并把.validate()拿出来,如果把它拿出来你会看到更详细的错误描述。希望有帮助。

关于ALAMOFIRE 的 JSON_encode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41868309/

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