zoukankan      html  css  js  c++  java
  • ios 使用json

    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];  

  • 相关阅读:
    转载JGTM' 2004[MVP]有关AOP的三篇精彩文章
    新增Skin
    发表文章的要求
    自定义UserControl的属性为什么不能在设计时显示在属性窗口中
    .Text学习笔记(一)
    访问类的private或internal成员[转载]
    博客园对发表文章的一些要求
    博客园成立了管理团队
    推荐一篇介绍.NET MetaData的文章
    让大家久等了:终于完成了AOP尝鲜系列之第三部[JGTM'2004 [MVP]文章转载]
  • 原文地址:https://www.cnblogs.com/xkzy/p/3812000.html
Copyright © 2011-2022 走看看