IOS开发-json序列化和反序列化

1 什么是JSON

JSON是一种轻量级的数据格式,一般用于数据交互

服务器返回给客户端的数据,一般都是JSON格式或者XML格式

JSON:JavaScript 对象表示法(JavaScript Object Notation)。
JSON 是存储和交换文本信息的语法。类似 XML。
JSON 比 XML 更小、更快,更易解析。


2 JSON的值

JSON 值可以是:
数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true 或 false)
数组(在方括号中)
对象(在花括号中)
null


3 JSON和OC对象转换表

    要从JSON中挖掘数据得对JSON进行解析,JSON需要转换为OC对象

JSON OC
大括号{ }
NSDictionary
中括号[ ]
NSArray
双引号" "
NSString
数字10  11.8 NSNumber


4 IOS解析方案

第三方框架:JSONKit SBJson TouchJson (性能从左到右,越来越差)

苹果原生(自带):NSJSonSerailization (性能最好)

提示:    JSON本质上是一个特殊格式的字符串,注意不是NSString ,JSON解析是一个非常繁琐的工作。

5 NSJSONSerialization的常见方法

JSON数据---->转OC对象 (即为反序列化)

+(id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **) error;

OC对象--->JSON数据 (即为序列化)

+(NSData*) dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError **) error;

6 什么是序列化和发序列化

序列化:主要是为了传输/存储方便,将要传输/存储的对象序列化为二进制的数据流,效率很高。

反序列化:在读取或者接收数据的时候,把数据转换成对象,便于使用。


7 什么情况下需要序列化 (反序列化同)

  1. 当你想把的内存中的对象状态保存到一个文件中或者数据库中时候;

  2. 当你想用套接字在网络上传送对象的时候;



你可能感兴趣的:(IOS开发-json序列化和反序列化)