美文网首页
swift 利用Codable 本地JSON转Model

swift 利用Codable 本地JSON转Model

作者: osnail | 来源:发表于2017-11-09 10:48 被阅读0次

    swift的JSON对model的转化确实心碎,刚才是搞得时候本想使用OC的JSONModel那种强大的转化库来无脑使用,但是心塞的发现并不能开心的使用,于是便四处寻找新的轮子,知道swift4之后还是apple大佬为我们提供了Codable,这下就开心了,ok ok ok废话太多了开撸
    首先我们先准备一个本地的JSON文件test.json

    {
        "name": "小明",
        "age": 12,
        "weight": 43.2,
        "school": [{
                    "name": "市第一中学11",
                    "address": "XX市人民中路 66 号11"
                   },
                   {"name": "市第一中学22",
                   "address": "XX市人民中路 66 号22"
                   
                   }]
    }
    

    其实个人感觉这种数据基本上是我们最常见的了,有"字典"有"数组",ok 本地json有了就该撸model了


    78FAEDFF-F1BE-4295-91F9-0C6910CA2B5F.png
    struct School: Codable {
        var name: String
        var address: String
    }
    struct Student: Codable {
        var name: String
        var age: Int
        var weight: Float
        var school: [School]
    }
    

    这里值得注意的是我的model都是继承与Codable,并不是NSObject
    OK 本地JSON有了,model有了下面就是JSON转化为我们设定的model了

    let path = Bundle.main.path(forResource: "test", ofType: "json")
            
            let loaclData = NSData.init(contentsOfFile: path!)! as Data
            do {
                let students = try JSONDecoder().decode(Student.self, from: loaclData)
                debugPrint("student====\(students.name)")
                
            } catch {
                debugPrint("student===ERROR")
                // 异常处理
            }
    

    至此JSON转Model就完成了,不得不说这很apple,就为我们提供一个Codable类,我们就可以这么简单的让json2Model.

    相关文章

      网友评论

          本文标题:swift 利用Codable 本地JSON转Model

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