最佳答案
Swift 4通过 Decodable
协议引入了对本地 JSON 编码和解码的支持。我如何使用这个自定义键?
例如,假设我有一个结构
struct Address:Codable {
var street:String
var zip:String
var city:String
var state:String
}
我可以将其编码为 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"
}
}
}
我可以把它编码回一个对象。
let newAddress: Address = try decoder.decode(Address.self, from: encoded)
但如果我有一个 json 对象
{
"state":"California",
"street":"Apple Bay Street",
"zip_code":"94608",
"city":"Emeryville"
}
我怎样告诉 Address
上的解码器 zip_code
映射到 zip
?我相信你用的是新的 CodingKey
协议,但我不知道怎么用。