用Gloss解析JSON數(shù)據(jù)

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

Swift方式解析JSON數(shù)據(jù)

用Gloss解析JSON數(shù)據(jù)

JSON對象映射(JSON Object Mapping)

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

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

Gloss地址

解析本地JSON數(shù)據(jù)
  • 定義模型對象
    模型對象必須遵守Decodable協(xié)議,這樣才能解析JSON數(shù)據(jù)。

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



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



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

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


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

    在控制臺里,你可以看到
    console
解析遠(yuǎn)程JSON數(shù)據(jù)

打開DataManage.swift,聲明TopAppURL。



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


Gloss底層淺析

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

  • 普通類型(Decoder.decode)
  • 可解碼的model(Decoder.decodeDecodable)
  • 普通數(shù)組(Decoder.decode)
  • 可解碼model類型的數(shù)組(Decoder.decodeDecodableArray)
    等等,這里就不列舉了。
    對于Gloss來說,Decodable model這個概念很重要。
    項(xiàng)目地址
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容