Swift ZHCodable (Codable)字典转模型封装

地址:
https://github.com/haoburongyi/ZHCodable

一个继承 Codable 协议的封装的字典转模型库,使用了 swift 语言风格,例如

OC 转模型风格
let model = Student.deserialize(jsonString)
Swift 风格:
let model = Student.zh.deserialize(json)

只有两百行代码,感兴趣的可以去下载源码查看,更改 zh 为自定义值,如果对你有帮助请在 github 点上 star,不胜感激

ZHCodable使用方法

json 转模型

        let model = Student.zh.deserialize(json)
        printLog(model)

模型转 json

        let modelJSON = model?.zh.toJSONString()
        printLog(modelJSON)

json 转字典

        let modelDict = modelJSON?.zh.toDict()
        printLog(modelDict)

模型转字典

        let modelDict1 = model?.zh.toDict()
        printLog(modelDict1)

字典转模型

        let model1 = Student.zh.deserialize(modelDict!)
        printLog(model1)

json 转模型

        let model2 = Student.zh.deserialize(modelJSON!)
        printLog(model2)

字典转模型

        let model3 = Student.zh.deserialize(modelDict1!)
        printLog(model3)

Array
数组转 json

        let arrayJSON = array.zh.toJSONString()
        printLog(arrayJSON)

数组转元素是字典的数组 [[String : Any]]

        let arrayDicts = array.zh.toDicts()
        printLog(arrayDicts)

根据 json 转模型的数组

        let array1 = [Student].zh.deserialize(arrayJSON!)
        printLog(array1)

根据元素是 json 的 array 转模型数组

        let array2 = [Student].zh.deserialize(jsonArray)
        printLog(array2)

根据元素是 json 的 NSArray 转模型数组

        let array3 = [Student].zh.deserialize(jsonDictArray)
        printLog(array3)

根据元素是字典的 array 转模型数组

        let array4 = [Student].zh.deserialize(dictArray)
        printLog(array4)

根据元素是字典的 NSArray 转模型数组

        let array5 = [Student].zh.deserialize(dictNSArray)
        printLog(array5)

模型

struct School: ZHCodable {
    var name: String? = ""
    var address: String? = ""
}

struct Student: ZHCodable {
    var name: String?
    var age: Int? = 0
    var weight: Float? = 0
    var school: [School]? = []
}

自定义字段


image.png

你可能感兴趣的:(Swift ZHCodable (Codable)字典转模型封装)