JSON数据解析和理解
- JSON(JavaScript Object Notation,js对象表达式),是交换文本信息的语法,一种轻量级的文本数据交换格式,网络数据请求到本地的数据格式。
JSON语法规则
- 数据在名/值对中
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
JSON的值
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true或false)
- 数组(当括号中)
- 对象(在花括号中)
- null
JSON的工具
1.Jason:一个应用软件,脸谱,用于查看json数据的格式的,不需要联网
2.ESJsonFormat:插件,将JSON格式的数据转化成OC代码,在多个数据中必不可少的插件,通过ALcatraz即可安装。
3.json.cn:在线解析JSON数据
对于多层JSON数据的理解
- 对于多层数据需要多个模型的时候,模型的实现部分哪怕没有代码也一定要写上去,模型的类也需要前向引用声明,避免和上一层数据的对象相冲突可以给一个类的名称加前缀,对于多个模型在同一个文件里实现的时候。
- 多层数据一定要看数据的类型,根据数据的类型来判断如何解析,如果crash在解析的时候可能就是数据参数出了错。
- 对于属性和类不对应可以利用YYModel来解决。
- YYModel映射
//返回一个 Dict,将 Model 属性名对映射到 JSON 的 Key。
+ (NSDictionary *)modelCustomPropertyMapper {
return @{@"name" : @"n",
@"bookID" : @[@"id",@"ID",@"book_id"]};
}
// 返回容器类中的所需要存放的数据类型 (以 Class 或 Class Name 的形式)。
+ (NSDictionary *)modelContainerPropertyGenericClass {
return @{@"shadows" : [Shadow class],
@"borders" : Border.class,
@"attachments" : @"Attachment" };
}