用Gloss解析JSON數據

在這篇博客中,你將學會用Gloss來解析JSON數據。項目中的JSON文件包含App Store排行榜上前25個app。
參考博客:
Swift Tutorial: Working with JSON

Swift方式解析JSON數據

用Gloss解析JSON數據

JSON對象映射(JSON Object Mapping)

對象映射(Object Mapping)是指將JSON對象轉化成Swift對象。在定義了模型對象和相應的映射規則后,Gloss會為你解析JSON數據。好處在于:

  • 代碼簡潔
  • 直接操作對象而不是字典和數組
  • 可通過擴展model class來添加新功能

Gloss地址

解析本地JSON數據
  • 定義模型對象
    模型對象必須遵守Decodable協議,這樣才能解析JSON數據。

1.新建一個文件TopApps.swift,在里面創建data model。那么<~~表示什么呢?它是編碼運算符(Encode Operator),能讓Gloss將key為”feed“的值解碼。



2.新建文件Feed.swift,在里面定義Feed



3.定義App模型對象,它代表JSON文件中的一個app

上面兩個模型對象的屬性是可選的,但是這里定義的兩個屬性都是non-optional的,所以我們需要檢查它是否為nil。


  • 使用Gloss
    在playground里,添加以下代碼

    在控制臺里,你可以看到
    console
解析遠程JSON數據

打開DataManage.swift,聲明TopAppURL。



從URL加載數據。
用optional binding確保data存在。
將data傳到success閉包里。


Gloss底層淺析

剛才用到的<~~其實是Decoder.decode函數的一種運算符。Gloss有很多種解碼函數:

  • 普通類型(Decoder.decode)
  • 可解碼的model(Decoder.decodeDecodable)
  • 普通數組(Decoder.decode)
  • 可解碼model類型的數組(Decoder.decodeDecodableArray)
    等等,這里就不列舉了。
    對于Gloss來說,Decodable model這個概念很重要。
    項目地址
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容