日期:2014-05-16  浏览次数:20326 次

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