美文网首页
使用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