ios5中apple增加了解析JSON的api——NSJSONSerialization。
生活随笔
收集整理的這篇文章主要介紹了
ios5中apple增加了解析JSON的api——NSJSONSerialization。
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ios5中apple增加了解析JSON的api——NSJSONSerialization。網上已經有人做過測試,NSJSONSerialization在效率上完勝SBJSON、TouchJSON、YAJL、JSONKit、NextiveJson。詳情見這里。既然apple為我們提供了這么良好的工具,我們沒理由不用吧。
NSJSONSerialization提供了將JSON數據轉換為Foundation對象(一般都是NSDictionary和NSArray)和Foundation對象轉換為JSON數據(可以通過調用isValidJSONObject來判斷Foundation對象是否可以轉換為JSON數據)。
下面提供一個從豆瓣電臺下載的json數據轉換的代碼
View Code #define kGlobalQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0)
#define kDoubanUrl @"http://douban.fm/j/mine/playlist?type=n&h=&channel=0&from=mainsite&r=4941e23d79"
-(void) loadJsonData:(NSURL *)url
{dispatch_async(kGlobalQueue, ^{NSData *data = [NSData dataWithContentsOfURL:url];[self performSelectorOnMainThread:@selector(parseJsonData:) withObject:data waitUntilDone:NO];});
}
-(void) parseJsonData:(NSData *)data
{NSError *error;NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];if (json == nil) {NSLog(@"json parse failed \r\n");return;}NSArray *songArray = [json objectForKey:@"song"];NSLog(@"song collection: %@\r\n",songArray);_song = songArray;self.songIndex = 0;NSDictionary *song = [songArray objectAtIndex:0];NSLog(@"song info: %@\t\n",song);
}
?Foundation對象轉換為json數據
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 }
?
轉載于:https://www.cnblogs.com/KingQiangzi/p/3607186.html
總結
以上是生活随笔為你收集整理的ios5中apple增加了解析JSON的api——NSJSONSerialization。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 洛谷 P5057 [CQOI2006]简
- 下一篇: Web Service 安全性解决方案(