当前位置:网站首页>Swift Archiving序列化
Swift Archiving序列化
2022-07-20 05:32:00 【蓝SE矢车菊】
Swift采用新的序列化方式,Codable
Foundation会实现这两种方法(Decodable & Encodable),你不需要做任何事情
而且可以从模型中自定义JSON中的key,非常方便
struct Engine: Codable {
var factoryName = "factoryName"
// 修改json中的key名称
private enum CodingKeys: String, CodingKey {
case factoryName = "factory_name"
}
}
struct Car: Codable {
var brand = "宝马"
var wheelsNumber = ["1", "2", "3", "4"]
var engine = Engine()
// 修改key的名称,若json中不需wheelsNumber字段时,不写case
private enum CodingKeys: String, CodingKey {
case brand = "brand_name"
case engine
// case wheelsNumber
}
}
序列化
let car = Car()
let data: Data? = try? JSONEncoder().encode(car)
print(String(data: data!, encoding: .utf8)!)
输出:{“brand_name”:“宝马”,“engine”:{“factory_name”:“factoryName”}}
反序列化
if let car = try? JSONDecoder().decode(Car.self, from:data!) {
print(car)
}
输出:Car(brand: “宝马”, wheelsNumber: [“1”, “2”, “3”, “4”], engine: Memorize.Engine(factoryName: “factoryName”))
边栏推荐
猜你喜欢
nvm安装使用
Netcat 简单的小工具模拟客户端/服务端
【学习笔记之菜Dog学C】链式访问、函数的声明和定义、goto语句
Introduction to microservice theory
直接插入排序/希尔排序
[dish of learning notes, dog learning C] getting to know the pointer for the first time
【学习笔记之菜Dog学C】函数递归
[dish of learning notes dog learning C] chain access, function declaration and definition, goto statement
微服務理論介紹
【学习笔记之菜Dog学C】循环语句
随机推荐
计算前五个数阶乘之和
【学习笔记之菜Dog学C】扫雷游戏
mysql_账号授权权限回收、账号锁定解锁、账号创建删除
[dish of learning notes dog learning C] array
用一个栈实现另外一个栈的排序
Flink 分流之 Filter/Split/SideOutPut 比较
【个人总结】2022.7.17周结
[dish of learning notes dog learning C] detailed operator
xshell安装完,启动报错:由于找不到 mfc110.dll,无法继续执行代码。重新安装程序可能会解决此问题
OpenLayers ol-ext:Transform 对象,旋转、拉伸、放大
Visual Studio 开发环境的配置
归并排序/快速排序
js 密码组合规则-8-16位数字和字符组合,不能纯数字、纯英文
Learn about spark project on nebulagraph
达梦ODBC安装
OpenLayers 画圆画椭圆
Centos8 (Linux) 安装 redis
达梦dem部署
由两个栈组成的队列
(Luogu) p1605 maze (once you enter the deep search, it's like a sea of bitterness, and from then on, it's a big die)