SwiftUI 中Codable的作用?
// struct Animal: Codable{
// var name: String
// var age: Int
// }
//
// let jsonStr = "{\"name\" : \"dog\", \"age\" : 5}"
// guard let jsonData = jsonStr.data(using: .utf8) else {
// exit(0)
// }
//
// let decoder = JSONDecoder()
// guard let obj = try? decoder.decode(Animal.self, from: jsonData) else {
// exit(0)
// }
//
// print(obj.name)
// print(obj.age)
//当json中的key值与我们定义的属性名对应时可以采用上述简单的方法, 如果不对应的话就需要借助CodingKeys来实现
struct Animal: Codable{
var name: String
var age: Int
enum CodingKeys: String, CodingKey {
case name = "a_name"
//case age = "age" //如果前后一致的话 可以省略=以及后边的部分 如 case age, 如果有需要忽略的key, 则不写到此处便可
case age
}
}
let jsonStr = "{\"a_name\" : \"dog\", \"age\" : 5}"
guard let jsonData = jsonStr.data(using: .utf8) else {
exit(0)
}
let decoder = JSONDecoder()
guard let obj = try? decoder.decode(Animal.self, from: jsonData) else {
exit(0)
}
print(obj.name)
print(obj.age)
此文仅为鄙人学习笔记之用,朋友你来了,如有不明白或者建议又或者想给我指点一二,请私信我。liuw_flexi@163.com/QQ群:582039935.
我的gitHub: (学习代码都在gitHub)
https://github.com/nwgdegitHub/

浙公网安备 33010602011771号