首页 > 系统 > iOS > 正文

iOSJson解析

2019-11-09 15:56:17
字体:
来源:转载
供稿:网友

JSON

JSON简介

现在很多服务器返回的数据格式都是JSON格式的数据。 JSON数据传输格式全称javaScript Object Notation是基于Javascript的轻量级的数据交换格式

JSON值类型

JSON中数据类型 对应 OC中数据类型

数字(整数或浮点数) NSNumber字符串(在双引号中) " "逻辑值(true 或 false) NSNumber数组(在方括号中) NSArray对象(字典 在花括号中) NSDictionarynull [NSNull null] 注意在判断值是否为空时使用此种方式

JSON语法

JSON 语法是JavaScript对象表示语法的子集。键值对 键:值 :分开数据由逗号分隔 ,花括号表示对象(OC中的字典){}方括号表示数组 []

简单的JSON例子

{"people" : [{"name":"张三", "age":"15"}, {"name":"李四", "age":"8"}, {"name":"王五", "age":"23"}, {"name":"小三", "age":"22"}]}

iOS中的JSON解析(OC)

NSJSONSerialization类

JSON转字典

注意一下代码中我的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

// 将对象转化为JSON数据,一般用来发送至服务端 // 判断是否可以转化为JSON数据 BOOL isValidJSON = [NSJSONSerialization isValidJSONObject:dic]; NSLog(@"isValidJSON==%d", isValidJSON); // 将可以转化为json数据的对象转化为json数据 NSData *data = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPRettyPrinted error:nil]; NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"string==%@", string);

解析注意事项

nil,Nil ,NSNull的区别:NULL C语言中的 表示空指针nil OC中的 空指针 一般用于对象的空Nil OC中的 空指针 一般用于类的空NSNull 空类 该类创建的对象为空对象 表示占位 对象中什么也没有

JSON解析网站

在线校验json格式 http://json.parser.online.fr http://www.json.cn


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表