1.网络数据解析概述
- 由于服务器端返回给我们的数据格式有多种,我们需要将数据转换为我们需要的格式,这里就需要用到数据解析
- 服务器传输给我们的数据主要有三种:
- JSON
- XML
- 二进制数据(图片、视频之类的信息)
2.JSON数据概述
- JSON数据是民间版的数据格式,是目前最主流的数据格式,另一种是官方版的数据个数XML
- JSON是一种轻量级的数据格式,一般用于数据交互
- JSON的格式很像OC中的字典和数组
{"name" : "jack", "age" : 10}
{"names" : ["jack", "rose", "jim"]}
- 标准JSON格式的注意点:key必须用双引号
- 要想从JSON中挖掘出具体数据,得对JSON进行解析
- 我们解析JSON数据就是将其转换为 OC数据类型
- JSON和OC对象转换后对应数据类型
- {} -> NSDictionary @{}
- [] -> NSArray @[]
- “jack” -> NSString @”jack”
- 10 -> NSNumber @10
- 10.5 -> NSNumber @10.5
- true -> NSNumber @1
- false -> NSNumber @0
- null -> NSNull
3.JSON解析方案
- 在iOS中,JSON的常见解析方案有4种
- 在iOS中,JSON的常见解析方案有4种
- 第三方框架:JSONKit、SBJson、TouchJSON(性能从左到右,越差)
- 苹果原生(自带):NSJSONSerialization(性能最好)
- 由于苹果自带的JSON解析性能最好,所以我们主要使用的也是苹果原生的解析器
4.JSON解析示例
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
NSString *json = @"[\"jack\",\"tom\"]";
NSString *json1 = @"null";
NSData *data = [json1 dataUsingEncoding:NSUTF8StringEncoding];