iOS Swift HandyJSON模型轉換

HandyJSON是一種Swift庫,用于將JSON數(shù)據(jù)轉換為Swift對象,同時也可以將Swift對象轉換為JSON數(shù)據(jù)。

一、導入HandyJSON庫

在Profile文件插入:

pod 'HandyJSON'

終端cd ~/項目路徑,執(zhí)行pod install,等待安裝完成即可

二、創(chuàng)建Swift數(shù)據(jù)模型

創(chuàng)建Swift類,并使其遵循HandyJSON協(xié)議。如果你需要存儲JSON中的所有字段,可以將類屬性定義為可選類型。

import HandyJSON
class User: HandyJSON {
    var name: String?
    var age: Int?

    required init() {}
}

三、解析JSON數(shù)據(jù)

使用JSONDeserializer解析JSON,并使用HandyJSON協(xié)議解析成Swift對象。

避免報錯No exact matches in call to static method 'deserialize'data必須聲明為String?,[String: Any]?,NSDictionary?

let jsonDict: NSDictionary = ["name": "Tom", "age": 12]
if let user = JSONDeserializer<User>.deserializeFrom(dict: jsonDict) {
    print(user.name)
    print(user.age)
}

或者

let jsonDict: NSDictionary = ["name": "Tom", "age": 12]
let user = User.deserialize(from: jsonDict)

如果是轉成模型數(shù)組,則可以這樣:

let jsonArray = [
    ["name": "Tom", "age": 19],
    ["name": "Jerry", "age": 28]
]
let userArray = Array<User>.deserialize(from: jsonArray as? Array<Any>)

四、將Swift對象轉換為JSON數(shù)據(jù)

使用toJSONString()方法將Swift對象轉換為JSON字符串。

let user = User()
user.name = "Tom"
user.age = 18
// 1、轉換成json數(shù)據(jù)
user.toJSON()
// 2、轉換成json字符串
if let jsonString = user.toJSONString() {
    print(jsonString) // 打印結果:{"name":"Tom", "age":18}
}

以上就是使用HandyJSON的基本方法。需要注意的是,除了標量類型的屬性(例如String、Int、Double)以外,所有其他自定義類型(例如數(shù)組,字典等)也必須遵循HandyJSON協(xié)議。

如果不記得轉換方法,可以封裝一個類、或者寫個Extension擴展類去實現(xiàn)所有轉換方法。避免使用時忘記,每次都要去找文檔了。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容