Swift一行程式碼封裝帶有巢狀結構的json(HandyJSON的基本應用)

weixin_33832340發表於2017-05-17

Swift中,對於json資料的處理,有類似於OC中的JsonModel,也就是HandyJSON,對於手動解析json資料的同學,可能封裝model會比較麻煩些,比如下圖中,需要給model的屬性,一個一個賦值,每個介面都需要進行一次這麼麻煩的解析。

2539121-1c89d00d9143486d.png
不使用第三方的資料解析

下面說一下HandyJSON的基本使用,只需要一行程式碼就可以將上面那麼多解析給代替。

首先,這是HandyJSON的gitHub地址github.com/alibaba/HandyJSON,下載下來之後將其拖入你的工程即可。

下圖中是我們要解析的資料


2539121-47d2a42320d16c03.png
json資料

可以看出,上邊需要封裝的model是在data對應的陣列裡,而外層還有code,message,如果用傳統的方法,我們是需要逐層解析的,非常麻煩。

接下來說的是HandyJSON的使用:

直接上圖

2539121-c916bb3ae9b4b099.png
陣列內的資料模型

上圖是陣列內的資料模型


2539121-af30d906ba5d1aae.png
最外層的模型

這裡注意的是,data是包含CustomModel的一個陣列,這樣寫,handyjson可以識別出來。


下面是解析:

2539121-e971ffe50f08da2a.png
json資料解析

直接把最外層的model型別(BaseDataModel)傳給它,data就是封裝好的BaseDataModel,這樣就OK了,列印的內容就是括號裡model的某個屬性,直接這一行就可以搞定了,不用逐個給model屬性輔助,類似於OC中的jsonModel,很方便很好用。

相關文章