Json数据解析


//导入前面文中创建的自定义下载类头文件
#import “QFNetWork.h”

//宏定义数据
 #define URL @"http://iappfree.candou.com:8080/free/applications/limited?%20currency=rmb&page=1"

//在视图控制器viewDidLoad方法内创建

//调用前面创建好的自定义下载类
[QFNetWork sendAsynchronousRequestWithUrl:URL cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInteral:10 copletionHander:^(NSURLResponse *response, NSError *error, NSData *data) {

        //如果没有出错则解析下载到的json数据

        if (error == nil) {

            //网络上数据的传输主要有两种格式(xml,json),这些数据无法直接使用,需要将其转换成对应的本地化数据类型(NSArray或NSDictionary)

            //序列化(归档)

            //反序列化(解档)

            //参数1:json格式的二进制数据

            //参数2:一般固定格式,选可变容器对象

            //参数3:保存解析错误信息

            id obj = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];

            //判断解析没有错误 

    if (error == nil) {

                //判断解析数据是否为字典类型

                if ([obj isKindOfClass:[NSDictionary class]]) {

                    NSMutableDictionary *dict = obj;

                    //开始解析字典,获取数据

                    NSArray *array = [dict objectForKey:@"applications"];  

                    for (NSDictionary *subDic in array) {

                        NSLog(@"name = %@",[subDic objectForKey:@"name"]);

                    }                    

                }

            }else{

                NSLog(@"json解析出错");

            }//end of error == nil in          

        }else{

            NSLog(@"下载数据出错,error = %@",

                  error.localizedDescription);

        }

    }];

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