IOS开发:官方自带的JSON使用_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > IOS开发:官方自带的JSON使用

IOS开发:官方自带的JSON使用

 2013/8/1 13:09:14  星烨痕  博客园  我要评论(0)
  • 摘要:apple在ios5的时候提供了json的相关处理api,其中最主要的是NSJSONSerialization类。1+(BOOL)isValidJSONObject:(id)obj;23+(NSData*)dataWithJSONObject:(id)objoptions:(NSJSONWritingOptions)opterror:(NSError**)error;45+(id)JSONObjectWithData:(NSData*)dataoptions:
  • 标签:使用 iOS 开发 JSON JS

apple在ios5的时候提供了json的相关处理api,其中最主要的是NSJSONSerialization类。

1 + (BOOL)isValidJSONObject:(id)obj;
2 
3 + (NSData *)dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError **)error;
4 
5 + (id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error;

其中最常用的就是以上3个类方法。

第一个用来判断当前数据是否可以转换成JSON,

第二个是把数据转换成JSON,返回NSData,

第三个就是把JSON解析

例子

 1     NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
 2     [dictionary setValue:@"Xcode" forKey:@"name"];
 3     [dictionary setValue:@"4.6.3" forKey:@"version"];
 4     NSArray *otherValueArray = @[@"File", @"Edit", @"View", @"Navigate"];
 5     [dictionary setValue:otherValueArray forKey:@"navigator"];
 6     
 7     NSError *error = nil;
 8     
 9     //转成JSON
10     NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionary
11                                                        options:NSJSONWritingPrettyPrinted
12                                                          error:&error];
13     if (error)
14     {
15         NSLog(@"dic->%@",error);
16     }
17     
18     NSString *jsonString = [NSString stringWithUTF8String:[jsonData bytes]];
19     
20     //解析JSON
21     id resultString = [NSJSONSerialization JSONObjectWithData:jsonData
22                                                       options:NSJSONReadingMutableLeaves
23                                                         error:&error];
24     if (error)
25     {
26         NSLog(@"dic->%@",error);
27     }
28     
29     NSArray *navigatorArray = resultString[@"navigator"];
30     
31     NSLog(@"\njsonString:%@\nresultString:%@\nnavigatorArray:%@",
32           jsonString, resultString, navigatorArray);

 

NSLog输出结果:

 

顺便在提几点,此功能仅限于IOS5才能使用。
根据网友的测试,这个自带的解析效率比目前网上几个第三方的JSON库都要快。

 

 

发表评论
用户名: 匿名