现在很多服务器返回的数据格式都是JSON格式的数据。 JSON数据传输格式
全称javaScript Object Notation
是基于Javascript
的轻量级的数据交换格式
JSON中数据类型 对应 OC中数据类型
数字(整数或浮点数) NSNumber字符串(在双引号中) " "逻辑值(true 或 false) NSNumber数组(在方括号中) NSArray对象(字典 在花括号中) NSDictionarynull [NSNull null] 注意在判断值是否为空时使用此种方式注意一下代码中我的JSON数据是从文件中获取的,一般来说我们都是从服务器中获取的JSON数据,LLJsonModel是根据返回的数据自定义的一个Model类。
// JSON解析 // 从文件中得到JSON数据 NSString *filePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"json"]; // 读取json数据 NSData *jsonData = [NSData dataWithContentsOfFile:filePath]; // 查看得到的数据 NSString *jsonStr = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSLog(@"jsonStr==%@", jsonStr); // NSJSONSerialization 解析 NSError *error = nil; NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error]; if (!error) { NSLog(@"dic====%@", dic); // 取错误信息 判断一下 NSLog(@"error_msg==%@", dic[@"error_msg"]); NSArray *modelArr = dic[@"people"]; for (NSDictionary *dic in modelArr) { LLJsonModel *album = [LLJsonModel new]; [album setValuesForKeysWithDictionary:dic]; [self.jsonArray addObject:album]; } NSLog(@"jsonArray===%@", self.jsonArray); // 展示到UI上 } else { NSLog(@"error:%@", error); }在线校验json格式 http://json.parser.online.fr http://www.json.cn
新闻热点
疑难解答