美文网首页
使用Swift原生JSON->Model

使用Swift原生JSON->Model

作者: 91阿生 | 来源:发表于2020-09-02 10:41 被阅读0次

使用例子代码:

1.服务器返回的json:

let json = """
{"userInfos": [{"age": 18,"sex": true,"height": 178.55999,"userName": "小黑"},{"age": 20,"sex": false,"height": 150.555,"userName": "小百"}]}
"""

2.创建的模型类
①. 非修改结构中的key值

struct UserList: Codable {
  var userInfos: [UserInfo] = []
  
  struct UserInfo: Codable {
      var userName: String = ""
      var age: Int?
      var height: Float?
      var sex: Bool = false
  }
}

②. 修改结构中某个key值(自定义键值名)

struct UserList: Codable {
    var userInfos: [UserInfo] = []
    
    struct UserInfo: Codable {
        var userName: String = ""
        var age: Int?
        var bodyHeight: Float?  // key: height
        var sex: Bool = false
        
        // 改变key的名称; 需要全部都在枚举中体现(不用修改key的, 也需写出) 写出的key与结构中顺序无关
        private enum CodingKeys: String, CodingKey {
            case bodyHeight = "height"
            case userName
            case age
            case sex
        }
    }
}
  1. 使用
let data = json.data(using: .utf8)!
let jsonDecoder = JSONDecoder()
let model = try? jsonDecoder.decode(UserList.self, from: data)

附上 模型->json:

let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted //输出的格式设置
let data1 = try? encoder.encode(model)

相关文章

网友评论

      本文标题:使用Swift原生JSON->Model

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