日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

[快速学会Swift第三方库] SwiftyJSON篇

發(fā)布時(shí)間:2023/12/18 javascript 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [快速学会Swift第三方库] SwiftyJSON篇 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

[快速學(xué)會(huì)Swift第三方庫] SwiftyJSON篇

SwiftyJSON使得用Swift處理JSON數(shù)據(jù)更加容易。這是解析JSON字符串封裝類。實(shí)現(xiàn)功能與Javascript中的JSON.parse相近,使用方便。

目錄

  • 快速學(xué)會(huì)Swift第三方庫 SwiftyJSON篇
    • 目錄
    • 編碼之前
      • 導(dǎo)入SwiftyJSON
      • 其他操作
    • 解析本地JSON
      • 示例JSON
      • 示例代碼
      • 運(yùn)行結(jié)果
    • 解析網(wǎng)絡(luò)JSON
      • 示例JSON
      • 示例代碼
      • 運(yùn)行結(jié)果
    • 深入學(xué)習(xí)

編碼之前

導(dǎo)入SwiftyJSON

推薦使用CocoaPods進(jìn)行導(dǎo)入,CocoaPods是一個(gè)負(fù)責(zé)管理iOS項(xiàng)目中第三方開源庫的工具,安裝CocoaPods之后使用命令行就能輕松地對(duì)所有第三方開源庫進(jìn)行安裝和更新,而不需要每次上GitHub去下載。
CocoaPods的安裝過程傳送門:iOS 9 導(dǎo)入類庫全面詳盡過程(Ruby安裝->CocoaPods安裝->導(dǎo)入類庫)
手動(dòng)下載:GitHub-SwiftyJSON主頁

裝好CocoaPods后,修改Podfile文件內(nèi)容為如下:

source 'https://github.com/CocoaPods/Specs.git' platform :ios, '9.0' use_frameworks!target 'Web' do pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git' end xcodeproj 'Desktop/Web/Web.xcodeproj'

target后面為工程名,最后一行為工程路徑(這里的Web是我的工程名)

再執(zhí)行命令:

$ pod install

其他操作

在Target->工程名->Build Settings->Search Paths->User Header Search Paths處添加SwiftyJSON所在的目錄:

最后在你需要用到SwiftyJSON的類中加上:

import SwiftyJSON

解析本地JSON

示例JSON

創(chuàng)建一個(gè)本地文檔“Notes.json”用于測(cè)試

{"ResultCode":0,"Record":[ {"ID":"1","Date":"2016-5-23","Content":"策劃","UserID":"summer"}, {"ID":"2","Date":"2016-5-24","Content":"研發(fā)","UserID":"summer"}, {"ID":"3","Date":"2016-5-25","Content":"研發(fā)","UserID":"summer"}, {"ID":"4","Date":"2016-5-26","Content":"測(cè)試","UserID":"summer"}, {"ID":"5","Date":"2016-5-27","Content":"發(fā)布","UserID":"summer"}]}

示例代碼

func jsonFromData() {let path = NSBundle.mainBundle().pathForResource("Notes", ofType: "json")!let json = JSON(data: NSData(contentsOfFile: path)!)//從JSON Dictionary中獲取key為ResultCode的int值let resultCode = json["ResultCode"].int!print("ResultCode:\(resultCode)")let array = json["Record"]//從JSON Array中進(jìn)行循環(huán)解析for (index,subJson):(String,JSON) in array {let userId = subJson["UserID"].string!let content = subJson["Content"].string!let date = subJson["Date"].string!print("\(index):\(userId) will do \(content) at \(date)")}}

運(yùn)行結(jié)果

ResultCode:0 0:summer will do 策劃 at 2016-5-23 1:summer will do 研發(fā) at 2016-5-24 2:summer will do 研發(fā) at 2016-5-25 3:summer will do 測(cè)試 at 2016-5-26 4:summer will do 發(fā)布 at 2016-5-27

解析網(wǎng)絡(luò)JSON

示例JSON

這里可以使用Alamofire提供的測(cè)試接口

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進(jìn)行網(wǎng)絡(luò)請(qǐng)求,關(guān)于網(wǎng)絡(luò)請(qǐng)求的問題,可以參考Swift學(xué)習(xí)筆記(3)iOS 9 中的網(wǎng)絡(luò)請(qǐng)求

func jsonFromNetworking() {var strURL = "https://httpbin.org/get"//等價(jià)于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進(jìn)行網(wǎng)絡(luò)請(qǐng)求,關(guān)于Alamofire的問題,可以參考[快速學(xué)會(huì)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)}}}

運(yùn)行結(jié)果

host:httpbin.org,origin:202.115.52.205

深入學(xué)習(xí)

這里只列出了最基本的JSON解析方式,如果你希望能夠更加深入地學(xué)習(xí)SwiftyJSON,可以前往GitHub-SwiftyJSON主頁 ! 如果你想了解蘋果自帶的JSON解析方式NSJSONSerialization,可以參考Swift學(xué)習(xí)筆記(2)網(wǎng)絡(luò)數(shù)據(jù)交換格式(XML,JSON)解析

總結(jié)

以上是生活随笔為你收集整理的[快速学会Swift第三方库] SwiftyJSON篇的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。