JSON文件里最外层是数组,里面含有一个个字典
[
{
"title": "网易电影票",
"id": "com.netease.movie",
"url": "http://itunes.apple.com/app/id583784224?mt=8",
"icon": "movie@2x.png",
"customUrl": "movieticket163"
},
{
"title": "网易新闻",
"id": "com.netease.news",
"url": "http://itunes.apple.com/app/id425349261?mt=8",
"icon": "newsapp@2x.png",
"customUrl": "newsapp"
}
]
首先,在controller.m中定义一个可变数组保存JSON数据
@property (nonatomic,strong) NSMutableArray *products; // 从JSON得到的数据
然后,在属性的懒加载方法中,解析得到JSON数据
#pragma mark - 懒加载解析JSON数据:
-(NSMutableArray *)products
{
if (_products == nil) {
_products = [NSMutableArray array];
// json文件存放路径
NSString *fileName = [[NSBundle mainBundle] pathForResource:@"products.json" ofType:nil];
// 将文件内容转换为NSData格式
NSData *jsonData = [NSData dataWithContentsOfFile:fileName];
// 解析JSON后得到数组
NSArray *jsonArr = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:nil];
// 遍历JSON数组里的字典,然后将每个字典转模型
for (NSDictionary *dict in jsonArr) {
// ProductModel类中的“字典转模型”的类方法
ProductModel *pModel = [ProductModel ProductModelWithDictionary:dict];
// 添加已经转成的模型
[_products addObject:pModel];
}
}
return _products;
}