相关疑难解决方法(0)

如何在Swift 4的可解码协议中使用自定义键?

Swift 4通过Decodable协议引入了对本机JSON编码和解码的支持.我如何使用自定义键?

比如说我有一个结构

struct Address:Codable {
    var street:String
    var zip:String
    var city:String
    var state:String
}
Run Code Online (Sandbox Code Playgroud)

我可以将其编码为JSON.

let address = Address(street: "Apple Bay Street", zip: "94608", city: "Emeryville", state: "California")

if let encoded = try? encoder.encode(address) {
    if let json = String(data: encoded, encoding: .utf8) {
        // Print JSON String
        print(json)

        // JSON string is 
           { "state":"California", 
             "street":"Apple Bay Street", 
             "zip":"94608", 
             "city":"Emeryville" 
           }
    }
}
Run Code Online (Sandbox Code Playgroud)

我可以将它编码回一个对象.

    let newAddress: Address = try decoder.decode(Address.self, from: encoded)
Run Code Online (Sandbox Code Playgroud)

但如果我有一个json对象

{ 
   "state":"California", 
   "street":"Apple Bay …
Run Code Online (Sandbox Code Playgroud)

json swift swift4 codable

81
推荐指数
2
解决办法
3万
查看次数

标签 统计

codable ×1

json ×1

swift ×1

swift4 ×1