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

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

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

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

JSON對(duì)象映射(JSON Object Mapping)

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

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

Gloss地址

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

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



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



3.定義App模型對(duì)象,它代表JSON文件中的一個(gè)app

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


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

    在控制臺(tái)里,你可以看到
    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)
    等等,這里就不列舉了。
    對(duì)于Gloss來說,Decodable model這個(gè)概念很重要。
    項(xiàng)目地址
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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