Swift-转模型Codable

作者: 物非0人非 | 来源:发表于2022-05-29 15:02 被阅读0次

    前言:Codable是苹果自带的基于KVC编码的数据转换模型的协议

    一:首先创建一个xyModel.swift文件
    //
    //  HomeModel.swift
    //  swift项目框架
    //
    //  Created by JH on 2022/5/29.
    //  Copyright © 2022 XY. All rights reserved.
    //
    
    import UIKit
    
    struct HomeModel : Codable {
        var name: String
        var modelName: String
        var booksList:   [HomeBookModel]? //嵌套模型
        
        private enum CodingKeys : String , CodingKey {
            case name = "names" //属性和服务器返回的字段个别不一样
            case modelName
            case booksList
        }
    }
    
    //模型里面有个其他模型或者模型数组,那么只要保证嵌套的模型里面依然实现了对应的协议
    // BookModel
    struct HomeBookModel:Codable {
        var color:String
        var size:String
    }
    
    
    二:进行转换
       //MARK: 转模型
        func changeJStoModel()  {
            
            //服务器返回数据
            let jsonStr = """
                    {
                    "names":"张三",
                    "modelName":"23",
                    "booksList" :
                        [{
                        "color":"蓝色",
                        "size":"180*100"
                        },
                        {
                        "color":"红色",
                        "size":"200*100"
                        }]
                    }
                    """
            
            //转模型
            if let jsonData = jsonStr.data(using: .utf8) {
                do {
                    let dataStruct = try JSONDecoder().decode(HomeModel.self, from: jsonData)
                    print("转模型dataStruct:" + "\(dataStruct)" )
                } catch {
                    debugPrint("error == \(error)")
                }
            }
            
        }
    

    相关文章

      网友评论

        本文标题:Swift-转模型Codable

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