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);
        }
    }];

结果

 

转载于:https://www.cnblogs.com/3WWanXiang/p/4905453.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值