iOS——JSON

本文介绍了JSON作为一种轻量级的数据交换格式,强调了其在iOS开发中的重要性。内容包括JSON的基本使用,如何根据数据类型选择用数组或字典接收解析数据,以及使用第三方库JSONKit进行解析时解决ARC问题的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概念:JSON是一种轻量级的数据交换格式。JSON采用完全独立语言的文本格式,易于阅读和编写,同时也易于机器解析和生成。

一、JSON的使用
    //创建数组接收数据
    NSMutableArray *personArray = [NSMutableArray
    array];
    //文件路径
    NSString *path = [[NSBundle mainBundle]
    pathForResource:@"Person" ofType:@"txt"];
     //创建数据对象
    NSData *data = [NSData
    dataWithContentsOfFile:path];
    //通过系统Foundation框架去解析,得到的是一个数组
    NSArray *dataArray = [NSJSONSerialization
    JSONObjectWithData:data options:0 error:nil];
    //通过循环数组,拿到一个dict,并把dict赋给per的属性
    for (NSDictionary *dict in dataArray) {
    //Person是一个Model,接收数据
        Person *per = [Person new];
        [per setValuesForKeysWithDictionary:dict];
        [personArray addObject:per];
    }
二、取数据

1、这种类型的,要用数组去接收JSON解析出来的数据
这里写图片描述

2、这种类型的,要用字典去接收JSON解析出来的数据,然后利用字典的key值去取对应的value,依次类推,一直找到你想要的数据,例如:我要得到“data”里的“cityName”
这里写图片描述
这里写图片描述
这里写图片描述

//先得到"result"里的数据,类型是字典
NSDictionary *dic1 = [dic objectForKey:@"result"];
//在得到"data"里的数据,类型是数组
NSArray *arr = [dic1 objectForKey:@"data"];
//然后遍历这个arr数组,得到所需的数据
for (NSDictionary *dict in arr) {
        //用model接收数据
        cinemaModel *model = [cinemaModel new];
        [model setValuesForKeysWithDictionary:dict];
        [dataArray addObject:model];
    }
三、使用第三方库——JSONKit

因为是第三方库,所有会出现ARC的问题,以下是解决的方法
1、导入文件
这里写图片描述
2、找到Compile Sources(9 items)
这里写图片描述
3、在对应的文件,加上—— -fon-objc-arc
这里写图片描述
4、使用
这两个方法是等价的

 //通过JSonKit去解析
NSArray *dataArray = [data objectFromJSONData];
//通过系统Foundation框架去解析,得到的是一个数组
NSArray *dataArray = [NSJSONSerialization
JSONObjectWithData:data options:0 error:nil];

总结:JSON是目前流行的数据类型,通过网络请求得到的数据大多数都是JSON数据,要通过解析数据,让数据显示在UI上。因此JSON数据的解析是重要的,要掌握。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值