JSON数据解析之苹果原生
来源:互联网 发布:大数据转型的企业 编辑:程序博客网 时间:2024/04/29 01:16
一、什么是JSON数据?
1.
JSON:是一种轻量级的传输数据格式,用于数据交互。
JSON 是 javascript 语言的一个子集。
javascript 是个脚本语言(不需要编译),用来给HTML增加动态功能,javascript和java没有半毛钱的关系!
服务器返回给客户端的数据,一般都是 JSON 格式或者 XML 格式(文件下载除外)。
2.
语法规则:
<1> 数据以键值的方式保存;
键(key)必须用双引号("key"),与键值之间以':'分隔; {"name":"花无缺"}
<2> 数据和数据之间以逗号(,)分隔. {"name":"花无缺","age":13}
<3> {}表示对象."person":{"name":"花无缺","age":13}
<4> []表示数组."persons":[
{"name":"花无缺","age":13},
{"name":"小鱼儿","age":14},
{"name":"邀月","age":15}
]
3.
JSON与OC转换对照:
大括号 {} == NSDictionary;
中括号 [] == NSArray;
双引号 " " == NSString;
数字 13,13.5 == NSNumber;
4.
数据传输过程:
客户端发送请求给服务器,服务器接收到客户端的请求之后,返回给客户端JSON数据;客户端需要把服务器返回的JSON数据转换为OC的数据格式(数组/字典等)。
二、JSON数据解析
1.JSON解析方法:
使用第三方框架和苹果原生JSON解析器。
在iOS中,常见的JSON数据解析方案有4种:
第三方框架:JSONKit, SBJson【最流行】, TouchJson.性能从左到右,依次变差(iOS 5(2011年)以前)。
苹果原生(自带):NSJSONSerialization (性能是最好的,iOS5以后推出)。
2.
解析JSON数据
<1> 反序列化(解析):
目的: JSON数据 --> OC对象,得到数据字典或者数据数组。
将从服务器接收到的JSON数据(二进制数据)转换成OC数据类型(NSArray,NSDictionary等)的过程。
好处:简化程序的开发,方便后续的字典转模型.
方法:
+ (nullable id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error;
<2> 序列化:
目的:OC对象 --> JSON数据,得到二进制JSON数据 NSData。
将数组或者字典发送给服务器之前,转换成二进制数据。
好处:方便网络传输,提高传输速度。
方法:
+ (nullable NSData *)dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError **)error;
需要注意的是,在做序列化之前,一定使用 isValidJSONObject 检测一下要序列化的对象,是否能够正确被序列化,避免出现闪退!
JSON解析示例如下:
// JSON的序列化 NSDictionary *dict1 = @{@"name":@"花无缺",@"10":@19,@"height":@"180"}; NSDictionary *dict2 =@{@"person":dict1}; NSArray *array = @[@"zhangsan",@"小鱼儿",@"wangwu",dict2]; BOOL is_YES = [NSJSONSerialization isValidJSONObject:array]; if (is_YES) { NSData *arrayJson = [NSJSONSerialization dataWithJSONObject:array options:0 error:NULL]; [arrayJson writeToFile:@"/Users/zhanghongyu/Desktop/task2" atomically:YES]; }
// JSON的反序列化 NSArray *dataArray = [NSJSONSerialization JSONObjectWithData:arrayJson options:0 error:nil]; NSLog(@"%@",dataArray);
- JSON数据解析之苹果原生
- 使用苹果原生的JSON数据解析浅析
- JSON解析之原生解析
- 原生Json数据的解析
- Android开发之原生解析复杂的json数据
- (转)JSON解析之原生解析
- 利用原生JSONObject解析特殊json数据.
- json-原生json解析
- 主流数据技术--JSON数据解析--原生解析
- 用苹果原生自带的NSURLParser解析XML数据:
- 数据解析之JSON
- JSON原生解析
- Android原生Json解析
- android json原生解析
- Json原生解析
- JSON原生解析
- 原生的JSON解析
- 原生JAVA解析json
- poj 1321 棋盘问题
- SQL Server2008函数大全(完整版)
- C++标准模板库
- Activity的onTrimMemory()方法
- 常见的网站攻击以及如何防御自己的网站被恶意攻击
- JSON数据解析之苹果原生
- 使用FlowDroid生成Android应用程序的函数调用图
- 数据结构之开场篇
- scribe 日志搜集
- 如何选择合适的项目开发方式
- 全局变量和局部变量在内存中的区别
- mongodb之聚合管道操作符的错误用法之$project(一)
- MYSQL中UNIX时间戳与日期的转换
- Android中的RSA加密