IOS数据解析之JSON

JSON解析

*注  如何将Json数据传到服务器

    // 提交json字符串到服务器
    // 1.创建字典
    NSDictionary *dic = @{
        @"username":@"test",
        @"password":@[@"test1",@"test2"]
    };
    // 2.系统把对象(NSArray,NSDic)转化为json字符串
    NSData *data = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:nil];
    NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

1)JSONKit (MRC)

1>导入JSONKit库

2>修改ARC   build phase ->compile sources ->选择文件双击添加 -fno-objc-arc

3>解析

NSString *urlString = @"https://api.douban.com/v2/book/search?q=s";

    [NSURLConnection sendAsynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]] queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
        
        // 使用JSONKit 进行json数据解析
        NSDictionary *dic = [data objectFromJSONData];
}];

2)系统自带类

 [NSURLConnection sendAsynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:urlString]] queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
        // 系统自带类解析
        NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
}];

3) JSONModel 

注意点:

 ItemModel.h

1.#import "JSONModel.h"

2.@interface ItemModel : JSONModel

 

   NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
        
        NSDictionary *dictJSON = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
        //取出字典里的applications数组
        NSArray *applications = [dictJSON objectForKey:@"applications"];
        for (NSDictionary *dict in applications) {
        // ItemModel继承自JSONModel,只需定义属性
            ItemModel *ietm = [[ItemModel alloc] initWithDictionary:dict error:nil];
            
            NSLog(@"%@\n\n\n",ietm.toJSONString);
        }
    }];

结果

 

posted @ 2015-10-23 19:17  WEJokers  阅读(211)  评论(0编辑  收藏  举报