NSJSONSerialization解析json数据

三月 13, 2016

继续阅读

       在iOS编程中对json数据解析最基础的就是NSJSONSerialization。它是在iOS5之后开始支持的,并且无需额外导入任何包。

NSJSONSerialization中定义获取一个json对象有两种方式:

//根据NSData获取json对象,如果是合法的json格式,返回一个NSDictionary对象
+ (nullable id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error;
//根据json输入流获取一个json对象,参数stream需要提前打开并且配置
+ (nullable id)JSONObjectWithStream:(NSInputStream *)stream options:(NSJSONReadingOptions)opt error:(NSError **)error;

当获取到json对象后,就可以使用NSDictionary来进行操作了。例如,原始数据如下图: 现在我们就以获取last中的bank和currency为例:

NSData *data = [NSData dataWithContentsOfURL:url options:NSDataReadingUncached error:nil];  
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];  
NSString *bank = [[json objectForKey:@"last"] objectForKey:@"bank"];  
NSString *currency = [[json objectForKey:@"last"] objectForKey:@"currency"];  

这样就去除了bank和currency的两个值:

Terry