数据处理(一)JSON 数据解析

一、JSON 数据的解析
 
服务器返回数据一般是 JSON 或 XML,JSON 中数据类型与 Objective-C 中数据类型的对应:
 
技术分享
 
JSON 解析第三方框架虽然很多,一般有:JSONKit、SBJson、TouchJSON,性能一般从左到右越来越差,但都不如官方框架 NSJSONSeriallization 性能好,推荐使用官方的。NSJSONSeriallization 可以实现 JSON 和 Objective-C 对象之间的互相转换,JSON 转成 Objective-C 对象:
 
1     //从文件路径转换到 NSData 数据
2     NSString *path  = [[NSBundle mainBundle] pathForResource: @"jsonData" ofType: @"json"];
3     NSData *jsonData = [[NSData alloc] initWithContentsOfFile: path];
4    
5     //解析 json
6     NSDictionary *dict = [NSJSONSerialization JSONObjectWithData: jsonData options: NSJSONReadingMutableContainers error: nil];

 

 
 
这里 options: 有三种情况:
 
typedef NS_OPTIONS(NSUInteger, NSJSONReadingOptions) {
    NSJSONReadingMutableContainers = (1UL << 0), //制定返回的是可变的数组或字典
    NSJSONReadingMutableLeaves = (1UL << 1),   //指定叶节点是可变的字符串
    NSJSONReadingAllowFragments = (1UL << 2)   //指定顶级节点可以不是数组货字典
}

 

 
同样可以使用 来编码 JSON,将别的数据编码成 JSON,方法如下:
 
+ (NSData *)dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError **)error;
 
+ (NSInteger)writeJSONObject:(id)obj toStream:(NSOutputStream *)stream options:(NSJSONWritingOptions)opt error:(NSError **)error;

 

 
 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。