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)