1、从https://github.com/stig/json-framework/中下载json框架:json-framework

2、解压下载的包,将class文件夹下的所有文件导入到当前工程下。

3、在使用的文件中加入导入语句 :#import "SBJson.h"

4、将json字符串转为NSDictionary对象

[cpp]  view plain copy

//测试json的解析  
-(void)testJsonParser: (NSString *) jsonString  
{  
    jsonString = [[NSString alloc] initWithString:@"{\"userInfo\":{\"userName\":\"张三\",\"sex\":\"男\"}}"];  
    NSLog(@"正在解析json字符串是:%@",jsonString);  
      
    SBJsonParser * parser = [[SBJsonParser alloc] init];  
    NSError * error = nil;  
    NSMutableDictionary *jsonDic = [parser objectWithString:jsonString error:&error];  
    NSMutableDictionary * dicUserInfo = [jsonDic objectForKey:@"userInfo"];  
      
    NSLog(@"%@",[jsonDic objectForKey:@"userInfo" ]);  
    NSLog(@"%@",[dicUserInfo objectForKey:@"userName"]);  
    NSLog(@"%@",[dicUserInfo objectForKey:@"sex"]);  
}

5、 处理json对象有多个记录的方法

[cpp]  view plain copy

NSString * customerGridJsonString = [[NSString alloc]initWithString:@"{\"customer\":[{\"name\":\"roamer\",\"ycount\":\"232.4\",\"sumcount\":\"322.3\"},{\"name\":\"王三\",\"ycount\":\"221.2\",\"sumcount\":\"1123.2\"},{\"name\":\"李四\",\"ycount\":\"1221.2\",\"sumcount\":\"12123.2\"}]}"];  
          
        SBJsonParser * parser = [[SBJsonParser alloc] init];  
//        NSLog(@"%@",customerGridJsonString);  
        NSError * error = nil;  
          
        NSMutableDictionary *root = [[NSMutableDictionary alloc] initWithDictionary:[parser objectWithString:customerGridJsonString error:&error]];  
        NSLog(@"%@",root);  
        //注意转换代码  
        SBJsonWriter *jsonWriter = [[SBJsonWriter alloc] init];  
          
        NSString *jsonString = [jsonWriter stringWithObject:root];  
          
        [jsonWriter release];  
        NSLog(@"%@",jsonString);  
        //注意转换代码  
        NSMutableArray * customers = [root objectForKey:@"customer"];  
        NSLog(@"%@",customers);  http://www.huiyi8.com/moban/​
        for(NSMutableDictionary * member  in customers)  
        {  
            NSLog(@"%@",[[member objectForKey:@"name"] description]);  
        }

6、递归遍历解析出的NSDictionary对象

[cpp]  view plain copy

-(void)visitDict:(NSDictionary *)dict{    
  NSArray *keys=[dict allKeys];    
  for (NSString *key in keys) {    
     NSString *result=[NSString stringWithFormat:@"key=%@,value=%@",key,[dict objectForKey:key]];    
     NSLog(result);    
     if([[dict objectForKey:key] isKindOfClass:[NSDictionary class]]){    
            [self visitDict:[dict objectForKey:key]];    
     }    
   }    
}    
7、将解析出的NSDictionary对象还原为json字符串 
[cpp]  view plain copy网站模板

NSString * jsonStr=[items JSONRepresentation];

ios 使用json的更多相关文章

  1. 【疯狂造轮子-iOS】JSON转Model系列之二

    [疯狂造轮子-iOS]JSON转Model系列之二 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇<[疯狂造轮子-iOS]JSON转Model系列之一> ...

  2. 【疯狂造轮子-iOS】JSON转Model系列之一

    [疯狂造轮子-iOS]JSON转Model系列之一 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 之前一直看别人的源码,虽然对自己提升比较大,但毕竟不是自己写的,很容易遗 ...

  3. iOS开源JSON解析库MJExtension

    iOS中JSON与NSObject互转有两种方式:1.iOS自带类NSJSONSerialization 2.第三方开源库SBJSON.JSONKit.MJExtension.项目中一直用MJExte ...

  4. **iOS发JSON请求中字符串加转义,返回的JSON去转义

    iOS中使用NSSerialization把对象转为JSON字符串后,多出来反斜杠的问题 http://segmentfault.com/q/1010000000576646 NSDictionary ...

  5. iOS 读取Json 代码

    保存一下iOS 读取Json的代码,留着以后Copy用,哈哈. NSString* path = [[NSBundle mainBundle] pathForResource: @"Sand ...

  6. IOS 解析Json数据(NSJSONSerialization)

    ● 什么是JSON ● JSON是一种轻量级的数据格式,一般用于数据交互 ● 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除 外) ● JSON的格式很像OC中的字典和数组 ...

  7. iOS下JSON反序列化开源库

    iOS下JSON字符串反序列化成对象.在正式的项目中比較常见.例如以下几个经常使用开源库.能够依据个人喜好任选其一: 1. JSONModel: https://github.com/icanzilb ...

  8. iOS解决json串中的NSNull类型

    iOS解决json串中的NSNull类型   后端返回的数据中总会出现一些NSNull类型,当我们一处理程序就会崩溃,因此想到把返回的数据中的NSNull类型全部转换成@""空字符 ...

  9. IOS中Json解析的四种方法

    作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有的json代码格式比较混乱,可以使用此“http://www.bejson.com/”网站来进行JSON格式化校验 ...

  10. ios中json解析出现的null问题

    http://my.oschina.net/iq19900204/blog/408034 在iOS开发过程中经常需要与服务器进行数据通讯,Json就是一种常用的高效简洁的数据格式. 问题现象 但是几个 ...

随机推荐

  1. Usaco_Contest_2013_Open_Bovine Problem 1. Bovine Ballet

    Problem 1: Bovine Ballet [Brian Dean, 2013] In an attempt to challenge the stereotypical perception ...

  2. BT中的磁力链接(转)

    注意:磁力链接不是迅雷的,而是BT网络中的一种协议. 磁力链接与种子文件 磁力链接并不是一个新概念,早在2002年,相关的标准草稿就已经制定了.但直到2012年海盗湾为规避版权问题删除了站点上的所有T ...

  3. http://blog.csdn.net/zh521zh/article/details/52687922

    http://blog.csdn.net/zh521zh/article/details/52687922

  4. 邁向IT專家成功之路的三十則鐵律 鐵律二十:IT人證照之道-收斂

    這是一個各行各業都講究專業證照的世代,彷彿證照只要比別人少一些就感覺自己遜掉了.現今IT領域的證照肯定是所有行業中最複雜的,無論是想求職升遷的還是想轉進IT跑道的,許多人由於受到媒體與廣告的影響,都不 ...

  5. 托管和非托管转换新方法:Marshaling Library(zz) 【转】

    托管和非托管转换新方法:Marshaling Library(zz) 托管和非托管转换新方法:Marshaling Library(zz) http://hi.baidu.com/superql/bl ...

  6. Linux退出时出现there are stopped jobs如何解决?

    Linux 使用exit时出现there are stopped jobs如何解决? 这是因为一些命令被挂起了, 在后台驻留,需要关闭. 解决问题: 输入命令jobs -l显示停止进程的详细列表 可以 ...

  7. android客户端向服务器端验证登陆方法的实现2

    一.在上一篇文章中,我只是提到了其中一种方法来实现登陆 大家可以参见: http://www.apkbus.com/android-45004-1-1.html      android获取web服务 ...

  8. 重置浏览器的默认样式(css reset)

    (1)定义:首先css reset指的是重置浏览器的默认样式 (2)作用:因为现在的浏览器很多,并且每个浏览器都有自己的默认样式,这样就会导致一个页面在多个浏览器下展示产生差异,所以我们需要做一些处理 ...

  9. Jenkins系列之-—06 Ant构建

    一.Ant 简介&构建环境 Apache Ant 是由 Java 语言开发的工具 构建ant环境: 1). 安装jdk,设置JAVA_HOME ,PATH ,CLASS_PATH 2). 下载 ...

  10. App性能优化浅谈

    前言 前段时间给公司的小伙伴们进行了关于app性能优化的技术分享.这里我稍微整理一下也给大家分享一下.关于性能优化这个话题非常大,涉及面能够非常广,也能够非常深入.本人能力有限,不会给大家讲特别难懂, ...