MyException - 我的异常网
当前位置:我的异常网» JavaScript » JSON的运用

JSON的运用

www.myexceptions.net  网友分享于:2013-04-22  浏览:2次
JSON的使用

cocoa 下json开源的类库有很多,其中JSONKit库是非常简单易用而且效率又比较高的。

见图:


如果你的app只支持iOS 5.0以上系统,那么直接用苹果官方提供的JSON库:NSJSONSerialization库即可。如果你的app要支持iOS 5.0以下的系统,那么我个人推荐JSONKit,不过JSONKit本身做了很多内存上的优化,所以不支持ARC,你在使用时可以对其加上 -fno-objc-arc 的编译标志即可

  • 编译的时候需要指定JSONKit.m的compiler flags "-fno-objc-arc"
      


想要使用JSONKit库来解析json文件,只需要下载JSONKit.h 和JSONKit.m添加到工程中(下载链接);然后加入libz.dylib即可

解析代码举例:

ios开发中JSONKit的使用

 

C代码  
  1. NSLog(@"打印测试");  
  2.   
  3.     NSString *jsonstring =@"[{\"age\":18,\"book\":{\"price\":23.2,\"title\":\"boook111\"},\"name\":\"samyou\"},{\"age\":22,\"book\":{\"price\":33,\"title\":\"booook222\"},\"name\":\"samsam\"}]";  
  4.   
  5.     NSData *data=[jsonstring dataUsingEncoding:NSUTF8StringEncoding];  
  6.   
  7.     NSArray *arr=(NSArray *)[data mutableObjectFromJSONData];  
  8.   
  9.     NSLog(@"count=%d",arr.count);  
  10.   
  11.     for(int i=0;i<arr.count;i++)  
  12.   
  13.     {  
  14.   
  15.         NSDictionary *people=[arr objectAtIndex:i];  
  16.   
  17.         NSString *name=[people objectForKey:@"name"];  
  18.   
  19.         NSString *age=[people objectForKey:@"age"];  
  20.   
  21.         NSLog(@"person withname=%@,age=%d",name,[age intValue]);  
  22.   
  23.         NSDictionary *book=[people objectForKey:@"book"];  
  24.   
  25.         NSString *bookname=[book objectForKey:@"title"];  
  26.   
  27.         NSNumber *price=[book objectForKey:@"price"];  
  28.   
  29.         NSLog(@"book with title=%@,price=%f",bookname,[price doubleValue]);  
  30.   
  31.     }  
C代码  
  1. //比如 strJson 是网络上接收到的 json 字符串,  
  2.   
  3.  #import "JSONKit.h"  
  4. NSString *strJson = @"{\"aps\": {\"alert\":{\"body\":\"a msg come!\"},\"bage\":3,\"sound\":\"def.mp3\"}}";  
  5. NSDictionary *result = [jsonData  objectFromJSONData];  
 
C代码  
  1. NSMutableDictionary *jsonDic = [NSMutableDictionary dictionary];  
  2. NSMutableDictionary *alert = [NSMutableDictionary dictionary];  
  3. NSMutableDictionary *aps = [NSMutableDictionary dictionary];  
  4. [alert setObject:@"a msg come!" forKey:@"body"];  
  5. [aps setObject:alert forKey:@"alert"];  
  6. [aps setObject:@"3" forKey:@"bage" ];  
  7. [aps setObject:@"def.mp3" forKey:@"sound"];  
  8. [jsonDic setObject:aps forKey:@"aps"];  
  9. NSString *strJson = [jsonDic JSONString];  

用法:

1.dictionary------>json

NSString *jsonstring = [dictionary JSONString];

 

 

2.json------------>dictionary

NSDictionary *dictionary = [jsonstring objectFromJSONString];

 



文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有