美文网首页
Swift ZHCodable (Codable)字典转模型封装

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

作者: 码农淏 | 来源:发表于2021-11-23 22:33 被阅读0次

    地址:
    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)字典转模型封装

          本文链接:https://www.haomeiwen.com/subject/kqkgtrtx.html