iOS开发-JSON数据

JSON是什么

JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

百度词条

JSON数据格式

JSON数据主要有两种数据格式

第一种是键/值对,对oc来说就是字典
1
2
3
{"id":"23","name":"mark"};  
解析出来在oc的展示就是:
@{@"id":@"23",@"name":@"mark"};
第二种是数组的格式
1
2
3
[{"id":"12","name":"mark"},
{"id":"11","name":"zhu"}]
这样解析出来的数据就是数组中每个值都是一个字典;

对象转换成JSON格式数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
NSDictionary *JSON_dic = @{@"id":@"12",@"name":@"mark"};
BOOL isJSON = [NSJSONSerialization isValidJSONObject:JSON_dic];
if (isJSON) {
NSLog(@"可以进行转换");
}else{
NSLog(@"转换失败,请查看数据格式是否正确");
}

NSArray *JSON_arr = @[@"name",@"age",@"number"];
BOOL JSON = [NSJSONSerialization isValidJSONObject:JSON_arr];
if (JSON) {
NSLog(@"可以进行转换");
}else{
NSLog(@"转换失败,请查看数据格式是否正确");
}

解析JSON数据

第三方TouchJSON

TouchJSON

第三方SBJson

SBJson

iOS5之后NSJSONSerialization类(推荐使用)
1
2
 NSData *data;
id message = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]
第三方JSONKit

JSONKit

总结

系统的API的解析速度最快,
SBJSON的解析速度为倒数第二差,
与系统API较为接近的是JSONKit;