发布时间:2025-12-09 21:09:56 浏览次数:3
SwiftyJSON使得用Swift处理JSON数据更加容易。这是解析JSON字符串封装类。实现功能与JavaScript中的JSON.parse相近,使用方便。
其他操作
在Target->工程名->Build Settings->Search Paths->User Header Search Paths处添加SwiftyJSON所在的目录:
最后在你需要用到SwiftyJSON的类中加上:
import SwiftyJSON创建一个本地文档“Notes.json”用于测试
{"ResultCode":0,"Record":[{"ID":"1","Date":"2016-5-23","Content":"策划","UserID":"summer"},{"ID":"2","Date":"2016-5-24","Content":"研发","UserID":"summer"},{"ID":"3","Date":"2016-5-25","Content":"研发","UserID":"summer"},{"ID":"4","Date":"2016-5-26","Content":"测试","UserID":"summer"},{"ID":"5","Date":"2016-5-27","Content":"发布","UserID":"summer"}]}这里可以使用Alamofire提供的测试接口
https://httpbin.org/get在浏览器中打开该地址可以看到:
{"args": {}, "headers": {"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Accept-Encoding": "gzip, deflate, br", "Accept-Language": "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3", "Cache-Control": "max-age=0", "Host": "httpbin.org", "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:46.0) Gecko/20100101 Firefox/46.0"}, "origin": "202.115.52.205", "url": "https://httpbin.org/get"}用苹果自带的NSURLSession进行网络请求,关于网络请求的问题,可以参考Swift学习笔记(3)iOS 9 中的网络请求
func jsonFromNetworking() {var strURL = "https://httpbin.org/get"//等价于strURL=strURL.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)strURL = strURL.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet(charactersInString: "`#%^{}\"[]|\\<>").invertedSet)!let url = NSURL(string: strURL)!let request = NSURLRequest(URL: url)let session = NSURLSession.sharedSession()let dataTask = session.dataTaskWithRequest(request) { (data, response, error) inif (error != nil){NSLog("Error:\(error?.localizedDescription)")}else{let json = JSON(data: data!)//从JSON Dictionary中获取key为headers的JSON Dictionary,再从其中获取key为Host的string值let host = json["headers","Host"].string!let origin = json["origin"].string!print("host:\(host),origin:\(origin)")}}dataTask.resume()}或者用第三方库Alamofire进行网络请求,关于Alamofire的问题,可以参考[快速学会Swift第三方库] Alamofire篇
func jsonFromNetworkingByAlamofire() {Alamofire.request(.GET, "https://httpbin.org/get").responseJSON { (response) inswitch response.result{case .Success:if let value = response.result.value{let json = JSON(value)let host = json["headers","Host"].string!let origin = json["origin"].string!print("host:\(host),origin:\(origin)")}case .Failure(let error):print(error)}}}