ios5中apple增加了解析JSON的api——NSJSONSerialization。网上已经有人做过测试,NSJSONSerialization在效率上完胜SBJSON、TouchJSON、YAJL、JSONKit、NextiveJson。详情见这里。既然apple为我们提供了这么良好的工具,我们没理由不用吧。
NSJSONSerialization提供了将JSON数据转换为Foundation对象(一般都是NSDictionary和NSArray)和Foundation对象转换为JSON数据(可以通过调用isValidJSONObject来判断Foundation对象是否可以转换为JSON数据)。
下面提供一个从豆瓣电台下载的json数据转换的代码
View Code #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数据
View Code 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); }
相关推荐
下面我们将详细介绍如何在iOS中解析JSON数据。 首先,我们需要了解JSON的基本结构。JSON数据主要由对象(Object)和数组(Array)组成。对象以大括号 `{}` 包裹,键值对以冒号 `:` 分隔,各个键值对之间用逗号 `,` ...
以下将详细介绍这两个核心知识点。 1. JSON数据封装: 在iOS中,JSON数据通常以字符串的形式传输,可以被解析成Objective-C或Swift的对象。数据封装是指将应用程序的数据模型转化为JSON格式的过程。苹果提供了两个...
通过以上介绍,你应该对iOS下的JSON数据解析有了基本的理解。实际开发中,根据项目的具体需求,你可能还需要处理更复杂的情况,比如嵌套的JSON对象、处理错误、优化性能等。但不论如何,`NSJSONSerialization`都是...
在iOS开发中,JSON(JavaScript Object Notation)是一种常见的数据交换格式,被广泛用于与服务器进行数据交互,尤其是在调用第三方API时...通过以上介绍和JisonThreeDemo项目的实践,相信你能够更好地掌握这一知识点。
本篇将详细介绍在iOS中解析JSON数据的六种方法,这些方法都是可以直接运行的。 1. **NSJSONSerialization**: iOS内置了`NSJSONSerialization`类,它提供了方便的方法来解析和序列化JSON数据。要解析JSON,可以...
以下将详细介绍相关知识点。 1. JSON基本概念: JSON (JavaScript Object Notation) 是一种基于文本的数据交换格式,主要由键值对(key-value pairs)组成,可以表示数组(arrays)和对象(objects)。它的语法...
本文将详细介绍如何将API接口的JSON数据快速转化为Objective-C(OC)中的字典,以便在iOS应用中使用。 首先,我们需要了解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于ECMAScript的一个...
本文将详细介绍四种常见的iOS JSON解析方式:TouchJSON、JSONKit、原生JSON以及SBJSON。 1. **TouchJSON** TouchJSON是早期流行的JSON库,它提供了简单的API来解析和生成JSON。使用TouchJSON,你可以通过`...
本文主要介绍了IOS 简单的本地json格式文件解析的实例详解,希望通过本文大家能够掌握这部分内容。 json格式文件是一种轻量级的数据交换格式,广泛应用于web开发和移动应用开发中。IOS平台上的json格式文件解析主要...
书中会教授如何使用NSJSONSerialization和其他第三方库,如AFNetworking、Alamofire,处理网络数据的解析和转换。 总的来说,《iOS Network Programming》是一本全面覆盖iOS网络编程各个方面的资源,无论你是初学者...
本篇主要介绍如何在iPhone开发中进行JSON解析,结合给出的标签“源码”和“工具”,我们将深入探讨JSON解析的原理以及如何使用第三方库SBJSON进行操作。 一、JSON基础 JSON是一种轻量级的数据格式,它基于...
书中将介绍如何使用NSJSONSerialization进行JSON编码和解码。XML则是另一种常用的数据交换格式,书中会讲解如何使用NSXMLParser或NSXMLDocument进行XML解析。 3. **Twitter集成**:iOS 5开始支持Twitter框架,使得...
- **数据解析**:学习如何使用NSJSONSerialization类将JSON数据转换成Objective-C对象。 - **数据验证**:介绍如何对服务器返回的数据进行验证,确保数据的安全性和完整性。 ##### 3.3 错误处理 - **章节概述**...
本篇将详细介绍如何在Swift和Objective-C中进行JSON到Model的转换,并基于提供的"swift-iOS(OC)JSON转Model的脚本"进行深入探讨。 首先,我们来看Objective-C的实现。在OC中,可以使用内置的`NSJSONSerialization`...
本篇文章将详细介绍如何在Objective-C中将JSON格式的数据映射到模型的属性。 首先,我们需要创建一个Objective-C类来表示我们的数据模型。每个类属性应对应JSON中的一个键值对。例如,如果JSON数据包含用户信息,...
本文将详细介绍iOS平台上的抓包工具及JSON解析工具的使用。 首先,我们来讨论iOS抓包工具。在iOS设备上,最常用的抓包工具是Charles。Charles是一个强大的HTTP代理服务器,它可以截取并显示HTTP和HTTPS流量。安装和...
JSON和XML是常见的数据交换格式,iOS提供了NSJSONSerialization和NSXMLParser等工具进行解析。书中详细讲解了如何处理JSON和XML数据,包括序列化和反序列化,以及在实际应用中的注意事项。 三、WebSocket与实时通信...
下面将详细介绍iOS读写json文件的相关知识点。 获取沙盒路径 在iOS系统中,每个应用程序都有自己的沙盒目录,该目录是文件系统中的一个目录,但是iOS系统会将每个应用程序的沙盒目录与文件系统的其他部分隔离,...
本篇文章将详细介绍三种在iOS开发中常用的JSON解析库:SBJSON、TouchJSON以及JSONKit。 1. **SBJSON** SBJSON是Stig Brautaset开发的一个开源库,它提供了一个简单的方法来解析和生成JSON数据。SBJSON不仅支持...
本教程将介绍如何利用iOS技术栈,包括Objective-C(OC)编程语言、AFNetworking库以及JSON数据解析,来创建一个简单的天气预报应用。 首先,我们需要了解iOS的基础架构。在iOS应用开发中,通常使用Xcode作为集成...