天天看點

Swift語言中如何使用JSON資料教程

這是一篇翻譯文章,原文出處: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資料的方法。