Swift-使用CodingKeys更改structs的properties

API更改键的名称,如 "id" 改为 "employeeID",解决方法:

struct Employee: Codable {
    var name:String
    var id: Int
    var mToy:Toy
    
    enum CodingKeys: String, CodingKey{
        case id = "emplyeeID"
        case name
        case mToy
    }
}

struct Toy:Codable {
    var name:String
}

// jsonString的输出结果为
//
"{\"name\":\"EmployA\",\"mToy\":{\"name\":\"Teddy Bear\"},\"emplyeeID\":1}"

说明:

  1. CodingKeys必须是嵌套在声明的struct中的
  2. CodingKeys必须遵守CodingKey协议
  3. 因为键都是String类型,所以需要在CodingKeys上声明为String enum CodingKeys: String, CodingKey
  4. 即使不打算重新命名所有的键也要在CodingKeys中列出所有的键
posted @ 2018-03-05 11:22  ShellHan  阅读(481)  评论(0编辑  收藏  举报