在之前的《iOS学习——xml数据解析(九)》介绍了xml数据解析,这一篇简单介绍一下Json数据解析。JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与客户端的交互,Json语法参考。关于在iOS平台上进行JSON解析,已经有很多第三方的开源项目,比如TouchJson,JSONKit,SBJon等,自从iOS5.0以后,苹果SDK推出了自带的JSON解决方案NSJSONSerialization,这是一个非常好用的JSON生成和解析工具,效率也是比其他第三方开源项目的高很多,详情可看下图。
图片详情可查看
NSJSONSerialization提供了Json数据封包、Json数据解析,NSJSONSerialization将JSON数据转换为NSDictionary或NSArray解包方法,将NSDictionary、NSArray对象转换为JSON数据(可以通过调用isValidJSONObject来判断NSDictionary、NSArray对象是否可以转换为JSON数 据)封包。这一篇将做简单介绍。
Json数据封包
NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2",@"value3",@"key3", nil];
// isValidJSONObject判断对象是否可以构建成json对象
if ([NSJSONSerialization isValidJSONObject:dic]){
NSError *error;
// 创造一个json从Data, NSJSONWritingPrettyPrinted指定的JSON数据产的空白,使输出更具可读性。
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&error];
NSString *json =[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
NSLog(@"json data:%@",json);
}
Json数据解析
NSError *error;
//加载一个NSURL对象
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://m.weather.com.cn/data/101120101.html"]];
//将请求的url数据放到NSData对象中
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
//IOS5自带解析类NSJSONSerialization从response中解析出数据放到字典中
NSDictionary *weatherDic = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error];
NSDictionary *weatherInfo = [weatherDic objectForKey:@"weatherinfo"];
NSString *text = [NSString stringWithFormat:@"今天是 %@ %@ %@ 的天气状况是:%@ %@ ",[weatherInfo objectForKey:@"date_y"],[weatherInfo objectForKey:@"week"],[weatherInfo objectForKey:@"city"], [weatherInfo objectForKey:@"weather1"], [weatherInfo objectForKey:@"temp1"]];
NSLog(@"weatherInfo:%@", text );
* iOS入门群:83702688
* android开发进阶群:241395671
*/
参考:
http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40010946-CH1-DontLinkElementID_1
http://www.w3school.com.cn/json/
http://www.ibm.com/developerworks/cn/web/wa-lo-json/
http://blog.sina.com.cn/s/blog_7018d3820101bdqz.html
分享到:
相关推荐
这个"IOS应用源码——JSon.zip"压缩包很可能包含了一个使用Swift或Objective-C编写的iOS应用,该应用涉及到JSON解析和序列化的过程。下面,我们将深入探讨iOS开发中的JSON相关知识点。 1. **JSON基本概念**:JSON是...
在iOS开发中,JSON是一种广泛...总之,理解并熟练掌握这些JSON解析方法,能够帮助iOS开发者更好地处理服务器数据,提高应用的响应速度和用户体验。在实际工作中,应根据项目特点和团队技术栈来选择最适合的解决方案。
在iOS开发中,JSON(JavaScript Object Notation)数据解析是一个重要的环节,因为它是一种轻量级的数据交换格式,广泛用于Web服务和移动应用之间的数据传输。本文将深入探讨JSON在iOS开发中的作用,以及如何利用...
本文将深入探讨如何在iOS中解析JSON数据,以“IOS之JSON数据解析”为主题,结合标签“源码”和“工具”,我们将讨论如何使用SBJson框架进行JSON的解析。 首先,JSON是一种轻量级的、易于人阅读和编写的数据格式,...
本文将深入探讨在iOS环境下如何解析JSON数据,以“ios下json数据解析的实例”为主题,结合提供的代码示例——JsonDemo,进行详细讲解。 首先,我们需要了解JSON的基本结构。JSON是一种轻量级的数据交换格式,它基于...
本文将深入探讨在iOS环境下,如何使用TouchJson库进行JSON数据的解析。 TouchJson是Cocoa Touch框架下的一款轻量级的JSON解析库,它为Objective-C程序员提供了方便的接口来处理JSON数据。TouchJson是基于JSON ...
总结一下,这个"iOS xml解析和json解析demo"将涵盖如何在iOS应用中解析XML数据,包括使用NSXMLParser和XMLParser,以及如何解析和序列化JSON数据,包括使用内置的JSONSerialization类和可能涉及的一些第三方库。...
在iOS开发过程中,有时我们需要对网络请求进行抓包来查看数据传输的过程,或者解析JSON数据以便更好地理解服务器返回的信息。本文将详细介绍iOS平台上的抓包工具及JSON解析工具的使用。 首先,我们来讨论iOS抓包...
在iOS开发中,JSON(JavaScript Object Notation)是一种广泛使用的轻量级数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。当涉及到iOS应用与服务器之间的数据交互时,JSON解析库就显得尤为重要。...
它的结构类似于Objective-C中的字典和数组,使得在iOS应用中解析和生成JSON数据变得相对简单。 JSON的基本数据类型包括字符串(string)、数字(number)、布尔值(boolean)、数组(array)、对象(object)和null...
iOS下解析json数据,自己亲自使用过,挺好用的。 使用JSONKit的解析方法:(需导入包:#import "JSONKit/JSONKit.h") - (void)printJson{ //如果json是“单层”的,即value都是字符串、数字,可以使用...
本文将深入探讨JsonKit库在iOS下的JSON数据解析。 JsonKit是一个针对Objective-C的轻量级、高效的JSON解析器和序列化器。它提供了简单易用的API,使得开发者可以方便地将JSON字符串转换为Objective-C对象,反之亦然...
在IT行业中,JSON(JavaScript Object Notation)是一种广泛使用的轻量级数据交换格式,它基于JavaScript的一个子集,易于人阅读和编写,同时也易于机器解析和生成。在处理JSON数据时,我们通常会遇到各种情况,包括...
"IOS json解析"这个主题涵盖了如何在iOS应用中处理JSON数据,尤其是利用苹果内置的技术进行解析。本文将深入探讨JSON解析的基本概念、苹果提供的解析API以及如何在实际项目中运用。 首先,我们需要了解JSON的结构。...
在iOS开发中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,被广泛用于应用程序与服务器之间的数据传输。由于其简洁、易读、易处理的特性,iOS提供了多种库来支持JSON的解析和序列化。本篇文章...
网络编程方面,可能涵盖URLSession、Alamofire等网络请求库的运用,以及JSON解析和序列化的实例。 总之,"iOS组件与框架——iOS SDK高级特性剖析 源代码"是一个宝贵的教育资源,它可以帮助开发者深入理解iOS开发中...
这个压缩包文件"ios-Json数据解析(天气预报).zip"显然关注的是如何在ARC环境下使用Objective-C来处理JSON数据,特别是在iPhone 4S设备上。我们将深入探讨其中涉及的几个关键知识点。 首先,"ARC(Automatic ...
IOS应用源码——XML解析.zip
【描述】"iOS实例开发源码——JTStackController for iOS.zip" 提示我们这是一个实际操作的例子,旨在帮助开发者理解和学习如何在iOS项目中集成和使用JTStackController。通过这个源代码,开发者可以深入研究...
在iOS应用开发中,数据解析通常涉及JSON或XML格式。JSON(JavaScript Object Notation)因其简洁、易读的特点被广泛使用。然而,数据解析时如果不妥善处理,可能会导致各种运行时错误,如强制解包失败(强制转换未...