NSJSONSerialization介绍
ios5中apple增加了解析JSON的api——NSJSONSerialization。网上已经有人做过测试,NSJSONSerialization在效率上完胜SBJSON、TouchJSON、YAJL、JSONKit、NextiveJson。详情见这里。既然apple为我们提供了这么良好的工具,我们没理由不用吧。
NSJSONSerialization提供了将JSON数据转换为Foundation对象(一般都是NSDictionary和NSArray)和Foundation对象转换为JSON数据(可以通过调用isValidJSONObject来判断Foundation对象是否可以转换为JSON数据)。
下面提供一个从豆瓣电台下载的json数据转换的代码
![](/assets/blank.gif)
![](/assets/blank.gif)
#define kGlobalQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0) #define kDoubanUrl @"http://douban.fm/j/mine/playlist?type=n&h=&channel=0&from=mainsite&r=4941e23d79" -(void) loadJsonData:(NSURL *)url {dispatch_async(kGlobalQueue, ^{NSData *data = [NSData dataWithContentsOfURL:url];[self performSelectorOnMainThread:@selector(parseJsonData:) withObject:data waitUntilDone:NO];}); } -(void) parseJsonData:(NSData *)data {NSError *error;NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];if (json == nil) {NSLog(@"json parse failed \r\n");return;}NSArray *songArray = [json objectForKey:@"song"];NSLog(@"song collection: %@\r\n",songArray);_song = songArray;self.songIndex = 0;NSDictionary *song = [songArray objectAtIndex:0];NSLog(@"song info: %@\t\n",song); }
Foundation对象转换为json数据
![](/assets/blank.gif)
![](/assets/blank.gif)
NSDictionary *song = [NSDictionary dictionaryWithObjectsAndKeys:@"i can fly",@"title",@"4012",@"length",@"Tom",@"Singer", nil];if ([NSJSONSerialization isValidJSONObject:song]){NSError *error;NSData *jsonData = [NSJSONSerialization dataWithJSONObject:song options:NSJSONWritingPrettyPrinted error:&error];NSString *json =[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];NSLog(@"json data:%@",json);}
转载于:https://www.cnblogs.com/touchme/archive/2012/05/05/2484709.html
NSJSONSerialization介绍相关推荐
- iOS之苹果自带的json解析NSJSONSerialization(序列化)
NSJSONSerialization介绍: NSJSONSerialization提供了将JSON数据转换为Foundation对象(一般都是NSDictionary和NSArray)和Founda ...
- IOS学习之 网络编程(10)--简单介绍ASI框架的使用
转载自 http://www.cnblogs.com/wendingding/p/3950027.html 说明:本文主要介绍网络编程中常用框架ASI的简单使用. 一.ASI简单介绍 ASI:全称是A ...
- ios 关于常用的一些第三方框架的介绍
本文转载自:http://blog.csdn.net/xiaoyuertongxue/article/details/46982879 图像: 1.图片浏览控件MWPhotoBrowser 实现了一 ...
- iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)--(转)
图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. ...
- (转)iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)
图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. ...
- 常用第三方开源框架介绍
图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. ...
- IOS-常用第三方开源框架介绍
iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) 时间:2015-05-06 16:43:34 阅读:533 评论:0 收藏:0 [点我收藏+] ...
- OS开发-常用第三方开源框架介绍
为什么80%的码农都做不了架构师?>>> OS开发-常用第三方开源框架介绍 http://blog.csdn.net/meiwenjie110/article/details/ ...
- 简单介绍互联网领域选择与营销方法
在我看来,互联网领域的选择是"安家",而营销方法的不同则表现了"定家"的方式多种多样,只有选对了,"家"才得以"安定". ...
最新文章
- php webstorm,webstorm和phpstorm的区别
- 在线图表编辑工具 draw.io 10.6.2 版本发布
- 如何控制订单发料后不能删除组件
- C++基类与派生类的转换与多态性
- Flowable 数据库表结构 ACT_RE_DEPLOYMENT
- slice,Array.prototype.slice,Array.protyotype.slice.call
- 用python实现一个按需生成用于vim跳转的tags文件的小程序
- [导入]8.3赛车频道活动
- .7 二叉查找树的 建立 insert search remove 操作
- C Tricks(九)—— 获取文件大小与申请数组空间
- 腾讯新浪通过IP地址获取当前地理位置(省份)的接口
- Flutter BindingBase服务扩展浅析
- VS2015 vs2017 密钥
- 【NLP】华为发布「国产Copilot内核」PanGu-Coder,而且真的能用中文哦!
- SAP内部培训效果考察表存档
- 二代征信在风控流程中的使用
- php tsrmg,php内核分析(二)-ZTS和zend_try
- SEO网站优化是什么
- 计算机控制系统++康波,计算机控制系统(康波)第3章习题部分参考解答12[1]
- 使用PlantUML插件来做图
热门文章
- python开发框架大全_最受欢迎 Top 12 Python 开源框架,你都用过吗?
- java htmlparser 使用教程_HTMLParser使用详解(1)
- mplab x ide 中文使用手册_中文文档:MPLAB ICD 4在线调试器用户指南
- cesium加载entity图片缩放_Cesium中级教程4 – 空间数据可视化(二)
- Java 进栈出栈的过程
- 计算机办公价格,公职人员,你的办公电脑最少要用6年,而价格不能超过这个数?...
- python列表生成时 if_Python列表生成式
- 深度linux安装好上不了网,Deepin Linux 无法上网
- 【OpenCV 例程200篇】05. 图像的属性(np.shape)
- php中update()函数,update_option()函数