iOS_黑(8)_SON数据处理,一条龙服务
一丶简介
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。_摘抄自百度;
iOS对JSON数据的处理,我把它分为以下几个步骤
1.获取json数据;
2.建立模型;
3.连接数据;
4.生成description
二丶开始上干货
1.获取JSON数据:
1.1为了方便查看JSON数据可以使用以下网址:
可以格式化JSON代码
JSON在线解析及格式http://json.cn/
JSON在线编辑器http://www.qqe2.com/
示例数据
{
"array": [
1,
2,
3
],
"sex": true,
"age": 12,
"id":95757,
"other": {
"a": "b",
"c": "d",
"e": "f"
},
"speak": "Hello World"
}
2.建立模型
这里介绍2种自动生成属性方式:
2.1 插件
ESJsonFormat :https://github.com/EnjoySR/ESJsonFormat-Xcode
效果图展示:
Paste_Image.png2.2Json-Property-Creat-Code
Json-Property-Creat-Code
这个功能比较强大
json数据生成model 支持KVC,JSModel, model会自动归档 例如输入一个json数据网址,或者将返回的json数据放入展开的输入框中,再输入要生成的model名字,点击生成就可以在桌面上看到你所要的model 可以无限嵌套哦,总而言之,不需要你写一句代码,这个model可以直接使用
效果图展示:
Paste_Image.png Paste_Image.png好用,谁用谁知道;
3.连接数据;
3.1
MJExtension(https://github.com/CoderMJLee/MJExtension)
**1> 字典 -> 模型
**2> 模型 -> 字典
**3> 字典数组 -> 模型数组
**4> 模型数组 -> 字典数组
这个不多介绍了,里面介绍很详细,都是中文;
提下,用到系统关键字处理方法:
+ (NSDictionary*)mj_replacedKeyFromPropertyName
{
return@{@"theID":@"id"};
}
3.2
还有一个YYKit
这个也不错,但是解析速度没有MJExtension快;
4.生成description
思路:利用Runtime获取类的所有属性,然后遍历拼接成一个字符串;
三丶扩展:
1.有时候服务器返回的JSON中,某个字典是以字符串形式展示,以下扩展,直接使用,不用谢;
@implementation NSString (Extension)
- (NSDictionary *)dictionaryWithJsonString
{
if (self == nil)
{
return nil;
}
NSData *jsonData = [self dataUsingEncoding:NSUTF8StringEncoding];
NSError *err;
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&err];
if (err)
{
Log(@"json解析失败:%@", err);
return nil;
}
return dic;
}
@end