這是一篇翻譯文章,原文出處:http://www.raywenderlich.com/82706/working-with-json-in-swift-tutorial
Swift語言中如何使用JSON資料教程
JSON(全稱:JavaScript Object Notation),是網絡服務中傳輸資料的常用方法,JSON因為容易使用,且可讀性強, 是以非常受到歡迎。
下面是個JSON的一個片段:
在objective-c 中解析JSON資料相當的簡單:
但在更加現代化的語言swift中, 因為optionals資料類型的原因,JSON資料解析起來反而要麻煩。
上面的代碼中,每從JSON資料中解析一次就需要通過optional binding檢查,這可以讓代碼更加安全,但也讓解析工作變得複雜,如果解析餓更複雜的jsons代碼變的備援。
我們開始一個例子
裡面有幾個檔案
TopApps.json:包含用于json解析的檔案
AppModel:代表應用類
DataManager:擷取本地和遠端資料類,使用這個檔案裡的方法加載JSON資料。
viewController :目前是空的,待會我門在裡面寫入代碼。
原生的解析JSON資料的方法
在viewController.swift檔案中的viewDidLoad()方法添加如下代碼:
運作後的結果:
Optional Binding: Clash of Clans
結合SwiftJSON第三方架構解析JSON資料
替換viewDidLoad()内容:
我們注意首先json()初始化data,并轉換成JSON對象
使用SwiftJSON的好處是,它處理了所有的optional資料類型的檢查,我們隻需要知道json資料的key和索引後,其他就可以交給 SwiftJSON來處理。
在上面的代碼中,我門還使用了string方法擷取string 值, SwiftJSON還有個arrayValue來擷取數組。
運作結果:
SwiftyJSON: Clash of Clans
擷取遠端JSON資料
在DataManager.swift中添加下列方法:
然後在viewController.swfit 中viewDidLoad()添加如下方法:
//從iTunes and 并通過SwiftyJSON擷取排名第一的app
解析JSON到array數組
從JSON 資料中周遊并儲存到類型為appModel的apps數組中。
運作程式:
在真實的程式中,我們會通過UITableView或者UICollectionView顯示資料。
這就是使用原生類和第三方類庫SwfitJSON解析JSON資料的方法。