JSON解析 ---- NSJSONSerialization介绍

转载 2015年07月06日 17:34:59

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

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

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


[javascript] view plaincopy
  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数据
[javascript] view plaincopy
  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.     }  

Swift-->Json解析(原生NSJSONSerialization)

什么是Json? 请百度… 本质就是String,是一种有格式的String.在Swift中,使用NSJSONSerialization对象,进行解析.1:将对象(字典/数组)转换成Json Str...
  • angcyo
  • angcyo
  • 2016年08月26日 10:22
  • 1496

数据解析(三)解析JSON-----系统自带NSJSONSerialization 与 第三方JSONKit

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - Decembe...
  • humingtao2013
  • humingtao2013
  • 2014年04月18日 20:50
  • 6696

{iOS} NSJSONSerialization解析和保存JSON String

NSJSONSerialization是iOS5以后有的,据说比各种第三方库都要快。 在其他语言和OC交互时,使用json字符串传递参数是比较常用的方法,这儿看一下怎么做。 1)从string 解...
  • n5
  • n5
  • 2016年01月15日 17:59
  • 2546

OC 在NSJSONSerialization 过滤JSON解析不了的掉特殊字符

- (NSString *)stringConvert:(NSString *)string{     //过滤不能打印的ASCII码     NSMutableString *str =...
  • hsf_study
  • hsf_study
  • 2017年01月04日 09:17
  • 426

iOS 使用NSJSONSerialization类进行json解析

二、JSON数据结构   JSON数据结构基本概念 JavaScript Object Notation ,轻量级的数据交换格式,采用完全独立于语言的文本格式,被称为理想的数据交换语言,易于人阅读和便...
  • HDFQQ188816190
  • HDFQQ188816190
  • 2016年11月07日 14:59
  • 3547

苹果自带的json解析NSJSONSerialization(序列化)

NSJSONSerialization介绍: NSJSONSerialization提供了将JSON数据转换为Foundation对象(一般都是NSDictionary和NSArray)和Found...
  • u011146511
  • u011146511
  • 2017年03月18日 10:59
  • 2087

JSON解析之NSJSONReadingOptions说明

在使用苹果自带的JSON解析时,我们往往搞不清楚该传哪一个参数,下面我一一介绍一下这些参数的含义 // 1、直接填0 返回的对象是不可变的,NSDict...
  • lg767201403
  • lg767201403
  • 2016年07月04日 18:00
  • 2307

iOS 原生解析Json类NSJsonSerialization

关于NSJSONSerialization,官方文档中有如下介绍: You use the NSJSONSerialization class to convert JSON to Fo...
  • xujinyang1234
  • xujinyang1234
  • 2013年11月13日 10:34
  • 3152

ios中使用 NSJSONSerialization对 json数据的解析

ios5中apple增加了解析JSON的api——NSJSONSerialization。通过该类,我们可以完成JSON数据与NSDictionary和NSArray之间的转化。网上已经有人做过测试,...
  • u011303663
  • u011303663
  • 2015年09月11日 10:33
  • 6212

Objective-C ,ios,iphone开发基础:JSON解析(使用苹果官方提供的JSON库:NSJSONSerialization)

json和xml的普及个人觉得是为了简化阅读难度,以及减轻网络负荷,json和xml 数据格式在格式化以后都是一种树状结构,可以树藤摸瓜的得到你想要的任何果子。 而不格式化的时候json和xml 又是...
  • wsq724439564
  • wsq724439564
  • 2013年09月11日 11:38
  • 17662
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JSON解析 ---- NSJSONSerialization介绍
举报原因:
原因补充:

(最多只允许输入30个字)