您的位置:首页 > Web前端 > JavaScript

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

2016-07-23 09:06 591 查看
对于本地文件的获取我在这里说一下我的理解,有不足之处希望大家可以提出批评。

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


我理解的内容大概就是这样,如有错误敬请指出,希望大家可以互勉,共同进步。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  json plist 数据