zoukankan      html  css  js  c++  java
  • 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];

     


  • 相关阅读:
    poj3614 Sunscreen 题解报告
    poj2299 Ultra-QuickSort 题解报告
    poj3784 Running Median 题解报告(对顶堆)
    CH103 Cinema 题解报告
    poj1845 Sumdiv 题解报告
    poj2018 Best Cow Fences 题解报告
    $CF311B Cats Transport$ 斜率优化
    斜率优化入门题:任务安排$123$ : )
    $Poj1821 Fence $单调队列优化$DP$
    《算法竞赛》$0×00$基本算法
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3005989.html
Copyright © 2011-2022 走看看