博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NSJSONSerialization介绍
阅读量:6893 次
发布时间:2019-06-27

本文共 1646 字,大约阅读时间需要 5 分钟。

 

 

 

 ios5中apple增加了解析JSON的api——NSJSONSerialization。网上已经有人做过测试,NSJSONSerialization在效率上完胜SBJSON、TouchJSON、YAJL、JSONKit、NextiveJson。。既然apple为我们提供了这么良好的工具,我们没理由不用吧。

  NSJSONSerialization提供了将JSON数据转换为Foundation对象(一般都是NSDictionary和NSArray)和Foundation对象转换为JSON数据(可以通过调用isValidJSONObject来判断Foundation对象是否可以转换为JSON数据)。

  下面提供一个从豆瓣电台下载的json数据转换的代码

 

 

 
  1. View Code   
  2.  
  3. #define kGlobalQueue    dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0)  
  4. #define kDoubanUrl      @"http://douban.fm/j/mine/playlist?type=n&h=&channel=0&from=mainsite&r=4941e23d79"  
  5. -(void) loadJsonData:(NSURL *)url  
  6. {  
  7.     dispatch_async(kGlobalQueue, ^{  
  8.         NSData *data = [NSData dataWithContentsOfURL:url];  
  9.         [self performSelectorOnMainThread:@selector(parseJsonData:) withObject:data waitUntilDone:NO];  
  10.     });  
  11. }  
  12. -(void) parseJsonData:(NSData *)data  
  13. {  
  14.     NSError *error;  
  15.     NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];  
  16.     if (json == nil) {  
  17.         NSLog(@"json parse failed \r\n");  
  18.         return;  
  19.     }  
  20.     NSArray *songArray = [json objectForKey:@"song"];  
  21.     NSLog(@"song collection: %@\r\n",songArray);  
  22.   
  23.     _song = songArray;  
  24.     self.songIndex = 0;  
  25.     NSDictionary *song = [songArray objectAtIndex:0];  
  26.     NSLog(@"song info: %@\t\n",song);  
  27. }  
Foundation对象转换为json数据
 
  1. View Code   
  2.   
  3. NSDictionary *song = [NSDictionary dictionaryWithObjectsAndKeys:@"i can fly",@"title",@"4012",@"length",@"Tom",@"Singer", nil];  
  4.     if ([NSJSONSerialization isValidJSONObject:song])  
  5.     {  
  6.         NSError *error;  
  7.         NSData *jsonData = [NSJSONSerialization dataWithJSONObject:song options:NSJSONWritingPrettyPrinted error:&error];  
  8.         NSString *json =[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];  
  9.         NSLog(@"json data:%@",json);  
  10.     }  

转载地址:http://vjhbl.baihongyu.com/

你可能感兴趣的文章
厦门自贸片区大数据平台启用
查看>>
物联网+传感器要火 畅想未来迎商机
查看>>
虚拟运营商牌照即将发放
查看>>
Ionic 2版本进行了性能提升并提供新的本地插件系统
查看>>
技术贴:弱电安防监控管理系统安装技术重点
查看>>
以太网阻塞的常见原因与解决方法
查看>>
大数据"云审计"为审计全覆盖推开一扇窗
查看>>
戴尔:物联网高速发展 有效整合OT与IT
查看>>
压力测试工具apache-ab讲解
查看>>
OpenStack:持续创新,永无止境
查看>>
富士正在研发全球最快有机传感器
查看>>
QA要学会偷懒
查看>>
《Unity开发实战》——1.6节了解Unity中的Content
查看>>
Bootstrap Table笔记——3
查看>>
为什么 Facebook 发明新语言“Hack”
查看>>
《vSphere性能设计:性能密集场景下CPU、内存、存储及网络的最佳设计实践》一1.1 准备工作...
查看>>
[图] Google 迎来全新 Logo 启用无衬线字体
查看>>
《OSPF和IS-IS详解》一2.5 路径决策过程
查看>>
如何将 Vim 打造成一个成熟的 IDE
查看>>
Jquery动态添加行
查看>>