• NSJSONSerialization


    NSJSONSerialization 是iOS 5中苹果添加的解析JSON的api,效率上优于SBJSON、TouchJSON、JSONKit、…… 第三方解析框架

    NSJSONSerialization提供了将JSON数据转换为Foundation对象(一般都是NSDictionary和NSArray)和Foundation对象转换为JSON数据(可以通过调用isValidJSONObject来判断Foundation对象是否可以转换为JSON数据)

      下面提供一个从豆瓣电台下载的json数据转换的代码

    [javascript] view plain copy
     
    1. View Code   
    2.  
    3. #define kGlobalQueue    dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0)  
    4. #define kDoubanUrl      @"http://douban.fm/j/mine/playlist?type=n&h=&channel=0&from=mainsite&r=4941e23d79"  
    5. -(void) loadJsonData:(NSURL *)url  
    6. {  
    7.     dispatch_async(kGlobalQueue, ^{  
    8.         NSData *data = [NSData dataWithContentsOfURL:url];  
    9.         [self performSelectorOnMainThread:@selector(parseJsonData:) withObject:data waitUntilDone:NO];  
    10.     });  
    11. }  
    12. -(void) parseJsonData:(NSData *)data  
    13. {  
    14.     NSError *error;  
    15.     NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];  
    16.     if (json == nil) {  
    17.         NSLog(@"json parse failed  ");  
    18.         return;  
    19.     }  
    20.     NSArray *songArray = [json objectForKey:@"song"];  
    21.     NSLog(@"song collection: %@ ",songArray);  
    22.   
    23.     _song = songArray;  
    24.     self.songIndex = 0;  
    25.     NSDictionary *song = [songArray objectAtIndex:0];  
    26.     NSLog(@"song info: %@ ",song);  
    27. }  

    Foundation对象转换为json数据

    [javascript] view plain copy
     
      1. View Code   
      2.   
      3. NSDictionary *song = [NSDictionary dictionaryWithObjectsAndKeys:@"i can fly",@"title",@"4012",@"length",@"Tom",@"Singer", nil];  
      4.     if ([NSJSONSerialization isValidJSONObject:song])  
      5.     {  
      6.         NSError *error;  
      7.         NSData *jsonData = [NSJSONSerialization dataWithJSONObject:song options:NSJSONWritingPrettyPrinted error:&error];  
      8.         NSString *json =[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];  
      9.         NSLog(@"json data:%@",json);  
      10.     }

    NSJSONSerialization 是iOS 5中苹果添加的解析JSON的api,效率上优于SBJSON、TouchJSON、JSONKit、…… 第三方解析框架NSJSONSerialization提供了将JSON数据转换为Foundation对象(一般都是NSDictionary和NSArray)和Foundation对象转换为JSON数据(可以通过调用isValidJSONObject来判断Foundation对象是否可以转换为JSON数据)

  • 相关阅读:
    基于Metaweblog API 接口一键发布到国内外主流博客平台
    uva144 Student Grants
    Uva 10452
    Uva 439 Knight Moves
    Uva 352 The Seasonal War
    switch语句
    java——基础知识
    我的lua学习2
    codeforces 431 D. Random Task 组合数学
    codeforces 285 D. Permutation Sum 状压 dfs打表
  • 原文地址:https://www.cnblogs.com/pruple/p/5650902.html
Copyright © 2020-2023  润新知