apple在ios5的时候提供了json的相关处理api,其中最主要的是NSJSONSerialization类。

 + (BOOL)isValidJSONObject:(id)obj;

 + (NSData *)dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError **)error;

 + (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error;

其中最常用的就是以上3个类方法。

第一个用来判断当前数据是否可以转换成JSON,

第二个是把数据转换成JSON,返回NSData,

第三个就是把JSON解析。

例子:

     NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
[dictionary setValue:@"Xcode" forKey:@"name"];
[dictionary setValue:@"4.6.3" forKey:@"version"];
NSArray *otherValueArray = @[@"File", @"Edit", @"View", @"Navigate"];
[dictionary setValue:otherValueArray forKey:@"navigator"]; NSError *error = nil; //转成JSON
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionary
options:NSJSONWritingPrettyPrinted
error:&error];
if (error)
{
NSLog(@"dic->%@",error);
} NSString *jsonString = [NSString stringWithUTF8String:[jsonData bytes]]; //解析JSON
id resultString = [NSJSONSerialization JSONObjectWithData:jsonData
options:NSJSONReadingMutableLeaves
error:&error];
if (error)
{
NSLog(@"dic->%@",error);
} NSArray *navigatorArray = resultString[@"navigator"]; NSLog(@"\njsonString:%@\nresultString:%@\nnavigatorArray:%@",
jsonString, resultString, navigatorArray);

NSLog输出结果:

顺便在提几点,此功能仅限于IOS5才能使用。
根据网友的测试,这个自带的解析效率比目前网上几个第三方的JSON库都要快。

IOS开发:官方自带的JSON使用的更多相关文章

  1. iOS开发——高级UI&带你玩转UITableView

    带你玩装UITableView 在实际iOS开发中UITableView是使用最多,也是最重要的一个控件,如果你不会用它,那别说什么大神了,菜鸟都不如. 其实关于UItableView事非常简单的,实 ...

  2. iOS开发笔记3:XML/JSON数据解析

    这篇主要总结在iOS开发中XML/JSON数据解析过程用到的方法.XML数据解析主要使用SAX方式的NSXMLParser以及DOM方式的GDataXML,JSON数据解析主要使用NSJSONSeri ...

  3. IOS开发之——使用SBJson拼接Json字符串

    SBJson包的下载地址在上一篇文章中. 能够使用NSDictionary中的键值对来拼接Json数据,很方便,也能够进行嵌套,直接上代码: //開始拼接Json字符串 NSDictionary *d ...

  4. iOS开发,系统自带的分享简单实现

    由于simulator设置里面没有新浪微博的选项,所以选择了真机调试,成功了.代码不多,包含头文件 没有配置登录信息的话,是没有作用的                                 ...

  5. iOS开发:自定义带下划线文本的UIButton

    Uiunderlinedbutton.h代码 @interface UIUnderlinedButton : UIButton { } + (UIUnderlinedButton *) underli ...

  6. 玩转iOS开发 - JSON 和 Xml 数据解析

    前言 Json 和xml是网络开发中经常使用的数据格式,JSON轻量级.xml相对较复杂.所以如今用JSON的比例很大.基本上从server获取的返回数据都是JSON格式的,作为iOS开发人员,解析J ...

  7. iOS开发网络篇—JSON数据的解析

    iOS开发网络篇—JSON数据的解析 iOS开发网络篇—JSON介绍 一.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式 ...

  8. iOS开发网络篇—发送json数据给服务器以及多值参数

    iOS开发网络篇—发送json数据给服务器以及多值参数 一.发送JSON数据给服务器 发送JSON数据给服务器的步骤: (1)一定要使用POST请求 (2)设置请求头 (3)设置JSON数据为请求体 ...

  9. iOS开发——运行时OC篇&使用运行时获取系统的属性:使用自己的手势修改系统自带的手势

    使用运行时获取系统的属性:使用自己的手势修改系统自带的手势 有的时候我需要实现一个功能,但是没有想到很好的方法或者想到了方法只是那个方法实现起来太麻烦,一或者确实为了装逼,我们就会想到iOS开发中最牛 ...

随机推荐

  1. mysql优化sql语句

    mysql优化sql语句   常见误区   www.2cto.com   误区1:   count(1)和count(primary_key) 优于 count(*)   很多人为了统计记录条数,就使 ...

  2. ACDream - k-GCD

    先上题目: B - k-GCD Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Sub ...

  3. winrar为啥有广告了?能去掉么?

    winrar为啥有广告了?能去掉么? 学习了:http://blog.csdn.net/chenchunlin526/article/details/54580686 学习了:https://jing ...

  4. Ubuntu镜像文件下载

    Ubuntu镜像文件下载 http://www.traffictool.net/vmware/ubuntu1404t.html 下载之后可以使用vmplayer启动: user/password ro ...

  5. 系统报 “client没有所需的特权” 的解决方法

    今在对服务端代码进行单元測试的时候.突然报出例如以下错误: client没有所需的特权 后经网上查找,相同的问题都是属于对C盘读写的问题.回忆自己的项目也须要对C盘进行创建文件夹和读写文件.故尝试运行 ...

  6. C++二叉树笔试题

    #include <iostream> #include <stack> #include <queue> using namespace std; templat ...

  7. no projects are found to import

    从svn上导出的项目在导入Eclipse中常常出现 no projects are found to import . 产生的原因是:项目文件里中没有".classpath"和&q ...

  8. solr实战-(一)

    实现用户数据索引及查询 1. 启动solr       solr start 2. 创建collection       solr create -c user 3. schema中加入field   ...

  9. 【转】HDFS读写流程

    概述开始之前先看看其基本属性,HDFS(Hadoop Distributed File System)是GFS的开源实现. 特点如下: 能够运行在廉价机器上,硬件出错常态,需要具备高容错性流式数据访问 ...

  10. 关于作者&情况

    本校第一次做信奥 , 如有错误, 见谅 本人之前从未接触编程, 选择信奥也只是因为怕被其他奥赛给淘汰... 这应该是懦弱吧...... 但自从接触编程以来, 虽然算不上极大的热爱, 但发自内心地喜欢它 ...