这里写自定义目录标题
Codable协议的定义
typealias Codable = Decodable & Encodable
它其实另外两个 Protocol 的集合,也就是 Decodable 和 Encodable。 一个用作数据解析,另一个用作数据编码。
例子
创建一个实体类,只声明几个属性,将它实例编码为json字符串
struct Person : Codable {
var name: String
var gender: String
var age: Int
}
let person = Person(name: “swift”, gender: “male”, age: 24)
let encoder = JSONEncoder()
let data = try! encoder.encode(person)
let encodedString = String(data: data, encoding: .utf8)!
print(encodedString)
输出结果: {“name”:“swift”,“age”:24,“gender”:“male”}
如上所示,首先初始化了一个 Person 实例。 然后初始化了一个 JSONEncoder。 再调用它的 encode 方法,把 person 实例进行编码
解析:
let decoder = JSONDecoder()
let result = try! decoder.decode(Person.self, from: data)
print(result)