本地文件的获取和解析(json,plist)

对于本地文件的获取我在这里说一下我的理解,有不足之处希望大家可以提出批评。
1、获取本地plist文件
首先获取本地文件的路径,其次判断plist文件的数据类型(主要有字典、数组),如果是字典(数组)那就创建一个新的字典(数组)用来存储获取到的数据,我个人认为这是比较简单的,只需要知道plist文件是存储的是什么数据类型就好。如图存储的是数组文件,数组中存储的是字典解析代码如下:
这里写图片描述
具体代码如下:

 //---------------------1. 从plist文件中读取数据---------------------
    //1) 获取路径
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"messages" ofType:@"plist"];
    //2) 通过filePath获取元素的值
    NSArray *messageArray = [NSArray arrayWithContentsOfFile:filePath];
    (此处是数组,字典和其它类型的获取方式一样)
    //3) for-in语句加载数据 ----> 对象存储
    for (NSDictionary *dic in messageArray) {

        //a) 初始化Message对象
        Message *message = [[Message alloc] init];
        //b) 初始message对象的相关属性
        message.content = dic[@"content"];
        message.time = dic[@"time"];
        message.isSelf = [dic[@"self"] boolValue];
        message.icon = dic[@"icon"];
        //c) 添加到_dataArray中
        [_dataArray addObject:message];
    }

2、本地json文件的获取
在获取本地json文件之前,要学会分析json文件,要知道json文件存储的是什么数据类型,json文件的分析是很重要的,如图所示的json文件(这里截取了一部分)
这里写图片描述
这个json文件首先是一个字典,在这个字典中它还包括字典、数组,这个结构相对于plist文件是复杂的,所以对json文件的分析是很重要的
获取及分析的主要代码如下:

   //获取路径(其中@"us_box"是json文件名)
    NSString *path = [[NSBundle mainBundle] pathForResource:@"us_box" ofType:@"json"];
    //封装成NSData类型
    NSData *data = [[NSData alloc] initWithContentsOfFile:path];
    //解析为字典
    NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
    //得到subjects这个键的value值
        NSArray *subjects = [dic objectForKey:@"subjects"];
        //初始化创建的数组
        _dataArray = [NSMutableArray array];
        //遍历获取到的字典得到值
         for (NSDictionary *subjectArray in subjects) {

    //这里我是使用了MVC模式利用的模型存储获取到的数据
        MovieModel *model = [[MovieModel alloc] init];
        model.rating = subjectsArray[@"rating"];
        model.title = subjectsArray[@"title"];
        model.images = subjectsArray[@"images"];
        //将model对象存储到数组中
        [self.dataArray addObject:model];

我理解的内容大概就是这样,如有错误敬请指出,希望大家可以互勉,共同进步。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值