- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IOS中Json解析的四种方法.docx
HYPERLINK /enuola/article/details/7903632IOS中Json解析的四种方法
作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式。
有的json代码格式比较混乱,可以使用此“/”网站来进行JSON格式化校验( HYPERLINK / 点击打开链接)。此网站不仅可以检测Json代码中的错误,而且可以以视图形式显示json中的数据内容,很是方便。
从IOS5开始,APPLE提供了对json的原生支持(NSJSONSerialization),但是为了兼容以前的ios版本,可以使用第三方库来解析Json。
本文将介绍TouchJson、 SBJson 、JSONKit 和 iOS5所支持的原生的json方法,解析国家气象局API,TouchJson和SBJson需要下载他们的库
TouchJson包下载:? HYPERLINK /detail/duxinfeng2010/4484144 /detail/enuola/4523169
SBJson 包下载:? HYPERLINK /detail/duxinfeng2010/4484842 /detail/enuola/4523177
HYPERLINK /detail/duxinfeng2010/4484842 JSONKit包下载:/detail/enuola/4523160
HYPERLINK /detail/duxinfeng2010/4484842 下面的完整程序源码包下载:/detail/enuola/4523223
PS:
国家气象局提供的天气预报接口
接口地址有三个:
/data/sk/101010100.html
/data/cityinfo/101010100.html
/data/101010100.html
第三接口信息较为详细,提供的是6天的天气,关于API所返回的信息请见HYPERLINK /duxinfeng2010/article/details/7830136开源免费天气预报接口API以及全国所有地区代码!!(国家气象局提供),全国各城市对应这一个id号,根据改变id好我们就可以解析出来各个城市对应天气;
下面介绍四种方法解析JSON:
首先建立一个新的工程,(注意不要选择ARC机制)添加如下控件:
如上图所示。下面展出程序代码:
文件 ViewController.h 中:
[cpp] view plaincopy
#import?UIKit/UIKit.h??
??
@interface?ViewController?:?UIViewController??
??
@property?(retain,?nonatomic)?IBOutlet?UITextView?*txtView;??
??
-?(IBAction)btnPressTouchJson:(id)sender;??
-?(IBAction)btnPressSBJson:(id)sender;??
-?(IBAction)btnPressIOS5Json:(id)sender;??
-?(IBAction)btnPressJsonKit:(id)sender;??
??
?@end??
文件ViewController.m中主要代码:
(1)使用TouchJSon解析方法:(需导入包:#import TouchJson/JSON/CJSONDeserializer.h)
[cpp] view plaincopy
//使用TouchJson来解析北京的天气??
-?(IBAction)btnPressTouchJson:(id)sender?{??
????//获取API接口??
????NSURL?*url?=?[NSURL?URLWithString:@/data/101010100.html];??
????//定义一个NSError对象,用于捕获错误信息??
????NSError?*error;??
????NSString?*jsonString?=?[NSString?stringWithContentsOfURL:url?encoding:NSUTF8StringEncoding?error:error];??
????NSLog(@jsonString---%@,jsonString);??
????//将解析得到的内容存放字典中,编码格式为UTF8,防止取值的时候发生乱码??
????NSDictionary?*rootDic?=?[[CJSONDeserializer?deserializer]?deserialize:[jsonString?dataUsin
文档评论(0)