来自 JSON Api 的 Swift 请求数据

Posted

技术标签:

【中文标题】来自 JSON Api 的 Swift 请求数据【英文标题】:Swift Request Data from JSON Api 【发布时间】:2017-11-22 16:35:31 【问题描述】:

我试图创建一个从 json api 获取对应的函数,但该函数返回值的速度比 alamofire 请求快……有人可以帮我吗?非常感谢你。代码如下。

func trainNameToTelecode(trainName: String) -> String 
    var returnTelecode: String = ""
    Alamofire.request("http://tra.ink/api/query/train?name=\(trainName)").responseJSON  (response) in
        let result = response.result
        guard let resultDict = result.value as? Dictionary<String,AnyObject> else return
        guard let bodyDict = resultDict["body"] as? [String:AnyObject] else return
        returnTelecode = bodyDict["telecode"] as! String
    
    return returnTelecode

【问题讨论】:

【参考方案1】:

您可以使用完成处理程序,当您的请求完成时将返回字符串,例如:

func trainNameToTelecode(trainName: String, completion: (String) -> Void) 
    Alamofire.request("http://tra.ink/api/query/train?name=\(trainName)").responseJSON  (response) in
        let result = response.result
        guard let resultDict = result.value as? Dictionary<String,AnyObject> else return
        guard let bodyDict = resultDict["body"] as? [String:AnyObject] else return

        if let returnTelecode = bodyDict["telecode"] as? String 
            completion(returnTelecode)
         else 
            completion("telecode is nil")
        
    


//and where you call your function:
self.trainNameToTelecode(trainName: "yourName")  (telecode) in
    print(telecode)

【讨论】:

以上是关于来自 JSON Api 的 Swift 请求数据的主要内容,如果未能解决你的问题,请参考以下文章

来自 Tracker Network API (SWIFT) 的 JSON

使用来自网站 API 的 POST 请求获取 Json 数据 [重复]

如何使用数组对 API 数据进行 Json 解码?

如何在 Swift 中解析来自 Alamofire API 的 JSON 响应?

如何比较来自同一API请求的JSON数据?

来自swift的JSON请求在php中显示空数组