【KakaJSON手册】06_Model转JSON】的更多相关文章

在iOS开发中,后台返回的数据大多是JSON格式,对应地会被网络框架层解析成Swift中的Dictionary.Array.由于数据类型的复杂.字段的繁多,直接使用Dictionary.Array会比较麻烦,比如items[0]["user"]["name"]这样的使用方式,非常不友善,而且没有智能语法提示.所以很多时候会考虑将JSON转换成Model之后再进行操作,会友善很多,比如items[0].user.name. Swift内置了一套Codable机制,可以…
在KakaJSON手册的第2篇文章中提过:由于JSON格式能表达的数据类型是比较有限的,所以服务器返回的JSON数据有时无法自动转换成客户端想要的数据类型 比如客户端想要的是Date类型,服务器返回的可能是字符串"2018-08-08 08:08:08.888"或者"2018/08/08 08:08:08.888" 像上述情况,KakaJSON内部是无法自动转换的,但提供了值过滤机制,允许开发者对JSON值进行自定义处理 日期处理 // 这2个DateFormatt…
前面的文章介绍了如何利用KakaJSON进行JSON转Model,从这篇文章开始介绍如何将Model转成JSON 生成JSON和JSONString struct Car: Convertible { var name: String = "Bently" var new: Bool = true var age: Int = 10 var area: Float = 0.12345678 var weight: Double = 0.1234567890123456 var heig…
由于JSON格式的能表达的数据类型是比较有限的,所以服务器返回的JSON数据有时无法自动转换成客户端想要的数据类型. 比如服务器返回的时间可能是个毫秒数1565480696,但客户端想要的是Date类型 再比如客户端想要的是浮点数Double类型,但服务器返回的可能是字符串类型"6.45" 再比如客户端想要的是Bool类型,但服务器返回的可能是"true"."1".0 再比如客户端想要的是高精度浮点数NSDecimalNumber类型,服务器为了…
有时候,服务器返回的JSON数据的key跟客户端模型的属性名可能不一致,比如客户端遵守驼峰规范叫做nickName,而服务器端返回的JSON可能叫做nick_name.这时候为了保证数据转换成功,就需要对模型属性名和JSON的key进行相应的映射.KakaJSON提供了简单易用的映射方式. 最基本的用法 struct Person: Convertible { var nickName: String = "" var mostFavoriteNumber: Int = 0 var b…
在上一篇文章中提到:有时候服务器返回的某个字段的内容类型可能是不确定的 当时给出的解决方案是实现kk_modelValue或者kk_didConvertToModel方法,根据实际需求自定义JSON的解析逻辑 如果不确定的内容是要转成模型,KakaJSON有更简单的实现方案 举例 struct Book: Convertible { var name: String = "" var price: Double = 0.0 } struct Car: Convertible { var…
除了完成JSON和Model的转换之外,KakaJSON内部还有很多实用的功能,有些也开放为public接口了 遍历属性 struct Cat { var age: Int = 0 let name: String = "" } guard let type = Metadata.type(Cat.self) as? ModelType, let properties = type.properties else { return } for property in propertie…
KakaJSON可以只用一行代码将常用数据进行归档\解档 后面代码中会用到 file 文件路径 // 文件路径(String或者URL都可以) let file = "/Users/mj/Desktop/test.data" String let string1 = "123" // 将字符串写入文件 write(string1, to: file) // 从文件中读取字符串 let string2 = read(String.self, from: file) X…
今天遇到了json编码解码之后中文消失的问题,一探究竟,写下这篇文章 PHP中提供了json_encode  和json_decode 这对函数 将PHP中 值转化成 字符串,但是遇到中文的时候,很容易出现乱码.为什么呢? 查看PHP手册,发现json只支持utf-8编码,也就是说,中文在进行json_encode时,必须是utf-8编码,json_decode之后也是utf-8编码 测试程序如下: <?php $arr = array ( 'Name'=>'德玛西亚', 'Age'=>…
本文输出JSON搜索和JSON转换相关的内容,是对前两篇文章的补充. JSON搜索 在特定的开发场景中,如果服务器端返回的JSON数据异常复杂(可能超过上万行),那么必然就有对JSON文档进行搜索的需求.在对JSON文档进行搜索的时候,建议使用专业的JSON搜索类库和工具来实现,这可以极大的简化JSON文档搜索的工作并降低工作难度. JSON搜索的具体适用场景:对于某次API调用,我们只需要其中的部分数据,这种情况我们就可以根据某个标准来对返回的JSON内容进行搜索和过滤. 本文将会先后介绍多款…