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/