iOS - JSONEncoder和JSONDecoder介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS - JSONEncoder和JSONDecoder介绍相关的知识,希望对你有一定的参考价值。

参考技术A

Xcode 9, ios 11 ,Swift 4出现 JSONEncoder 和 JSONDecoder 来实现JSON格式的编解码

编码数据为JSON对象

简单使用

定义杂货食品结构体,并遵守 Codable 协议

Codable 协议为可编解码协议的类型别名

编码例子

运行输出

也可以设置输出格式为 sortedKeys ,对keys进行排序

运行输出

将JSON对象解码成对应的实例数据

简单使用

运行输出

初始化内容

Employee包含Toy属性,属于嵌套类型(nested type)

运行输出

camel case 表示驼峰形式(如:looksLikeThis)
snake case 表示下划线形式(如:looks_like_this_instead)

运行输出

使用自定义key,这里使用gift替换favoriteToy

编解码实现同上

运行输出

去除嵌套类型,实现如下数据结构

修改 Employee 结构体,单独实现编解码协议

初始化内容同上

实现身层级JSON数据

可以看到name属性在toy之内,toy属性在gift之内,为了实现该数据结构,需要为gift属性使用嵌套key容器(nested keyed containers)

运行上面测试内容输出

实现日期的编解码

简单使用

运行输出

实现编解码子类

简单使用

运行输出

复杂类型的编解码

简单使用

运行输出

数组的编解码

简单使用

运行输出

对象数据结构中拥有数组的编解码

简单使用

运行输出

JSONEncoder
JSONDecoder
Encoding-and-decoding-in-swift

以上是关于iOS - JSONEncoder和JSONDecoder介绍的主要内容,如果未能解决你的问题,请参考以下文章

JSONDecoder和JSONEncoder类是线程安全的吗?

我可以取消 JSONEncoder Swift 吗?

使用 JSONEncoder 对类型为 Codable 的变量进行编码

使用 JSONEncoder 编码/解码符合协议的类型数组

使用 JSONEncoder 将 nil 值编码为 null

了解 JSONEncoder 的子类化