本地文件的获取和解析(json,plist)
2016-07-23 09:06
591 查看
对于本地文件的获取我在这里说一下我的理解,有不足之处希望大家可以提出批评。
1、获取本地plist文件
首先获取本地文件的路径,其次判断plist文件的数据类型(主要有字典、数组),如果是字典(数组)那就创建一个新的字典(数组)用来存储获取到的数据,我个人认为这是比较简单的,只需要知道plist文件是存储的是什么数据类型就好。如图存储的是数组文件,数组中存储的是字典解析代码如下:
具体代码如下:
2、本地json文件的获取
在获取本地json文件之前,要学会分析json文件,要知道json文件存储的是什么数据类型,json文件的分析是很重要的,如图所示的json文件(这里截取了一部分)
这个json文件首先是一个字典,在这个字典中它还包括字典、数组,这个结构相对于plist文件是复杂的,所以对json文件的分析是很重要的
获取及分析的主要代码如下:
我理解的内容大概就是这样,如有错误敬请指出,希望大家可以互勉,共同进步。
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];
我理解的内容大概就是这样,如有错误敬请指出,希望大家可以互勉,共同进步。
相关文章推荐
- 我是运营,我没有假期
- 使用 Python 处理 JSON 格式的数据
- XML 与 JSON 优劣对比
- VBA将excel数据表生成JSON文件
- DB2数据库的安装
- C#实现把指定数据写入串口
- “传奇”图象数据存储方式
- newtonsoft.json解析天气数据出错解决方法
- 修复mysql数据库
- 浅析SQL数据操作语句
- SQLServer 数据导入导出的几种方法小结
- 简述MySQL分片中快速数据迁移
- MySQL数据备份之mysqldump的使用详解
- C#实现窗体间传递数据实例
- vbs 解析json jsonp的方法
- Ruby和Ruby on Rails中解析JSON格式数据的实例教程
- C#中的委托数据类型简介
- SQL Server删除表及删除表中数据的方法
- SqlServer2008误操作数据(delete或者update)后恢复数据的方法
- 给你的数据库文件减肥