JSON数据解析
//Json : JavaScript Object Notation, 脚本对象标注法
Student.json
[
{
"age":"18",
"name":"张三",
"sex":"男"
},
{
"age":"38",
"name":"李四",
"sex":"男"
},
{
"age":"28",
"name":"王五",
"sex":"男"
}
]
- (void)viewDidLoad {
[super viewDidLoad];
self.studentArray = [NSMutableArray arrayWithCapacity:0];
(1)
//获取文件路径
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Student" ofType:@"json"];
//转成NSData
NSData *data = [NSData dataWithContentsOfFile:filePath];
//进行json解析
NSError *error = nil;
// NSJSONSerialization: iOS提供的json解析类
// NSJSONReadingMutableContainers: 解析到得字典和数组是可变的(NSMutabelArrary, NSMutableDictionary)
// NSJSONReadingMutableLeaves: 解析到得叶子节点的内容是可变的(NSMutableString)
// NSJSONReadingAllowFragments : 允许json数据的最外层不是字典和数据
NSArray *dataArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];
if (error) {
NSLog(@"%@", error);
}
NSLog(@"%@", dataArray)for (NSDictionary *dic in dataArray) {
Student *student = [[Student alloc] init];
student.name = dic[@"name"];
student.sex = dic[@"sex"];
student.age = dic[@"age"];
[_studentArray addObject:student];
[student release];
NSLog(@"%@", student);
}
(2)
//使用jsonkit
//获取路径
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Student" ofType:@"json"];
//获取内容
NSString *content = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];
//内容进行json解析
NSArray *dataArray = [content objectFromJSONString];
NSLog(@"%@", dataArray);
for (NSDictionary *dic in dataArray) {
Student *student = [[Student alloc] init];
student.name = dic[@"name"];
student.sex = dic[@"sex"];
student.age = dic[@"age"];
[_studentArray addObject:student];
[student release];
NSLog(@"%@", student);
}
posted on 2015-03-03 16:41 taiyang2014 阅读(131) 评论(0) 编辑 收藏 举报