第三方SwiftyJSON的使用方法
2017-05-24 本文已影响263人
野比大雄001
在object-c中,我们可以利用kvc原理完成;根据kvc原理,也有很多开源的第三框架生成;比如mjextension框架字典转模型。但是对于Swift语言中,没有继承nsobject类,是不支持kvc的;object-c的runtime机制是非常给力的,所以反射的概念很少,像在Java、c#语言中,反射是很常用的;在swift中也支持反射;
反射:根据对象获取对象的类型,及属性;
在swift中,我们可以利用HandyJSON框架来完成字典转模型这个事;HandyJSON的核心就是反射;
A: JSONSerialization能将JSON转换成Foundation对象,也能将Foundation对象转换成JSON,但转换成JSON的对象必须具有如下属性:
1,顶层对象必须是Array或者Dictionary
2,所有的对象必须是String、Number、Array、Dictionary、Null的实例
3,所有Dictionary的key必须是String类型
4,数字对象不能是非数值或无穷
注意:尽量使用JSONSerialization.isValidJSONObject先判断能否转换成功。
B:SwiftyJSON(保持JSON语义,直接解析JSON,但通过封装使调用方式更优雅、更安全,但是Key、路径、类型仍然需要开发者去指定)
C: HandyJSON (预定义Model类,将JSON反序列化为类实例,再使用这些实例,进行Model和JSON间的互相转换)