gpt4 book ai didi

json - SwiftyJSON - 从 func 返回 json 数组

转载 作者:行者123 更新时间:2023-11-28 09:37:50 26 4
gpt4 key购买 nike

我正在处理我的本地 json api,它可以很好地使用 swiftyjson 和 alamofire 接收和解析数据,但是在返回这些数据时,我遇到了一些麻烦:

import Alamofire
import SwiftyJSON

...

func getApi() -> Array<JSON> {

let user = "user"
let password = "password"

Alamofire.request(.GET, "http://localhost/api/")
.authenticate(user: user, password: password)
.responseString { (req, res, body, error) in

if let data = (body)!.dataUsingEncoding(NSUTF8StringEncoding) {

let json = JSON(data: data)

println(json) // works fine

return json // does not work
}
}
}

所以它打印“JSON 不可转换为 Void”...

有人知道怎么处理吗?

你认为我使用 alamofire 进行“http-basic-authentification”做得对吗?

问候和感谢!

最佳答案

如果您的 api 返回一个 JSON 对象,alamofire 会提供一个 .responseJSON,而 swiftyJSON 可以包装该响应。

另外不要忘记此请求是异步的,因此您可能需要在完成处理程序中获取这些结果,如下所示:

func getApi(completionHandler: (jsonResponse: JSON) -> () {
let user = "user"
let password = "password"

Alamofire.request(.GET, "http://localhost/api/")
.authenticate(user: user, password: password)
.responseJSON { (req, res, JSON, error) in

println(json) // works fine

completionHandler(json)
}
}
}

像这样调用方法:

getAPI(completionHandler: { (response: JSON) -> () in
// do something with your response. If the JSON contains an array you can iterate through it here.
}

下一件好事是检查 Alamofire 文档上的“响应序列化”部分。

关于json - SwiftyJSON - 从 func 返回 json 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31701334/

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