微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift Alamofire SwiftyJson

需求描述:

  GET请求一个url,返回的是需要解析的json串。

步骤如下:

  首先是使用Alamofire初始化一个url,这里需要注意的是不要自定义参数,比如使用%@来替换参数。应该使用Alamofire自带的参数设置:

let parameters: Parameters = ["sort": "string"]
Alamofire.request(url,parameters:parameters).responseJSON{response  in
    //your code here  
}

   接着就是解析json串,使用SwiftyJson比较方便一点,避免了各种类型之间的强制转换,这个框架代替我们完成了

            switch response.result {
            case .success( _):
                if let data = response.data {
                    do{
                        let json = try JSON(data: data)
                        //result指的是json的第一个key值,以及后面的取值方式是以一个数组拿出来,这里需要自己按照实际情况
                        let subString_sick = json["result"].array![0][0].string!.split(separator: ";")
                        //处理另外一个
                        let subString_advice = json["result"].array![0][1].string!.split(separator: ";")
                        //整合,保存在全局变量中方便在其他地方使用
                        let arraySickAndAdvice = [subString_sick,subString_advice]
                        
                        self.dictionarySickLabel[sickTag] = arraySickAndAdvice
                        
                    }catch{}
                    
                }
            case .failure(let error):
                print("\(error)")
            }

 关于字典的Swift的初始化定义参考:

    var arraySickLabels: Array<UILabel> = []
    var dictionarySickLabel : Dictionary<String,Array<Any>> = [:]

 在其他地方调用的时候需要类型转一下

as! [String.SubSequence] //因为我们使用splite得到的变量就是该类型

 

参考网页:

https://github.com/SwiftyJSON/SwiftyJSON

https://github.com/Alamofire/Alamofire/blob/master/Documentation/Alamofire%204.0%20Migration%20Guide.md

https://www.jianshu.com/p/f8c3adb056cf

https://www.jianshu.com/p/ff8c099d23b1

https://www.jianshu.com/p/acf91a4113ff

https://cloud.tencent.com/developer/ask/131211

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐