iOS学习笔记(十一)——JSON数据解析
来源:互联网 发布:2015最红网络歌曲 编辑:程序博客网 时间:2024/04/30 18:53
目录(?)[-]
- Json数据封包
- Json数据解析
在之前的《iOS学习——xml数据解析(九)》介绍了xml数据解析,这一篇简单介绍一下Json数据解析。JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与客户端的交互,Json语法参考。关于在iOS平台上进行JSON解析,已经有很多第三方的开源项目,比如TouchJson,JSONKit,SBJon等,自从iOS5.0以后,苹果SDK推出了自带的JSON解决方案NSJSONSerialization,这是一个非常好用的JSON生成和解析工具,效率也是比其他第三方开源项目的高很多,详情可看下图。
图片详情可查看
NSJSONSerialization提供了Json数据封包、Json数据解析,NSJSONSerialization将JSON数据转换为NSDictionary或NSArray解包方法,将NSDictionary、NSArray对象转换为JSON数据(可以通过调用isValidJSONObject来判断NSDictionary、NSArray对象是否可以转换为JSON数 据)封包。这一篇将做简单介绍。
Json数据封包
- NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",@"value3",@"key3", nil];
- // isValidJSONObject判断对象是否可以构建成json对象
- if ([NSJSONSerialization isValidJSONObject:dic]){
- NSError *error;
- // 创造一个json从Data, NSJSONWritingPrettyPrinted指定的JSON数据产的空白,使输出更具可读性。
- NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&error];
- NSString *json =[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
- NSLog(@"json data:%@",json);
- }
Json数据解析
- NSError *error;
- //加载一个NSURL对象
- NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://m.weather.com.cn/data/101120101.html"]];
- //将请求的url数据放到NSData对象中
- NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
- //IOS5自带解析类NSJSONSerialization从response中解析出数据放到字典中
- NSDictionary *weatherDic = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error];
- NSDictionary *weatherInfo = [weatherDic objectForKey:@"weatherinfo"];
- NSString *text = [NSString stringWithFormat:@"今天是 %@ %@ %@ 的天气状况是:%@ %@ ",[weatherInfo objectForKey:@"date_y"],[weatherInfo objectForKey:@"week"],[weatherInfo objectForKey:@"city"], [weatherInfo objectForKey:@"weather1"], [weatherInfo objectForKey:@"temp1"]];
- NSLog(@"weatherInfo:%@", text );
参考:
http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40010946-CH1-DontLinkElementID_1
http://www.w3school.com.cn/json/
http://www.ibm.com/developerworks/cn/web/wa-lo-json/
http://blog.sina.com.cn/s/blog_7018d3820101bdqz.html
- iOS学习笔记(十一)——JSON数据解析
- iOS学习笔记(十一)——JSON数据解析
- iOS学习笔记(十一)——JSON数据解析
- iOS学习笔记(十一)——JSON数据解析
- iOS学习——JSON数据解析
- ios学习笔记(三)-----json数据的解析
- iOS学习笔记(九)—— xml数据解析
- iOS学习笔记(九)—— xml数据解析
- iOS学习笔记之网络篇数据解析(JSON/XML)
- <Android学习笔记五>——JSON数据的解析
- 网络请求与json数据解析——学习笔记
- 【学习笔记十一】- JSON
- iOS编程学习二十一(网络和JSON解析)
- Cocos2d-x学习笔记(十三)—— 数据解析(json/xml)
- iOS学习笔记—— xml数据解析
- ios学习:NSURLConnection 和 Json数据解析
- IOS学习之——JSON解析
- IOS学习笔记(16)网络请求,json解析
- ObjectArx中AcdbPolyLine与Acdb2DPolyLine区别
- Python中单引,双引,三引号的区别
- Poj2175(费用流,负环消圈)
- TortoiseGit 的使用
- 成员函数重载运算符和友元函数重载运算符的比较
- iOS学习笔记(十一)——JSON数据解析
- spring-data-redis key-value序列化
- 如果这会还没有ARPANET
- 在Windows Server 2012 中实现 Start Menu All Programs 功能
- vi部分命令和设置
- 学习opencv——sift与suft的应用
- PTSD
- 六、测试用例设计白皮书--判定表驱动分析方法
- Unity3D项目程序加密2——对dll进行混淆