JSON
网络数据传输中,有2种数据格式最常用。JSON和xml数据。
JSON数据的数据结构简单,冗余数据少,网络数据传输的时候JSON数据比xml数据的传输快。但是JSON数据的结构相对简单,相比于xml来讲可读性要差一些。
JSON字符串
{}的是字典,[]的是数组
将上面几种,表示成清晰可见的格式。
字符串要用引号来引出,系统才能识别当前JSON数据的数据类型。基本数据类型不需要加引号,key value 之间用逗号隔开,最后一个key value不需要加引号。
嵌套,如数组种嵌套2个字典:
使用
能够转换成二进制json数据的对象都可以成为json对象,总共有2类,字典和数组。
json解析类:NSJSONSerialization
NSDictionary *jsonDict=@{@"name":@"Tom",
@"age":@20};
//json对象转换成二进制json数据
NSData *data=[NSJSONSerialization dataWithJSONObject:jsonDict options:0 error:nil];//options一般都传0
NSLog(@"data:%@",data);
NSString *jsonString=@"{\"name\": \"xiaohong\"}";//json字符串必须要合法
//字符串转json数据
NSData *jsonData=[jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *resultDict=[NSJSONSerialization JSONObjectWithData:jsonData options:0 error:nil];//返回是一个id类型,如果知道具体是什么类型,可以具体些.
NSLog(@"result:%@",resultDict);
字符串是不可以直接转换成json对象的。
KVC键值编码
通过KVC键值编码,可以很方便的完成类中属性的赋值操作
在User.m文件中写一个没有对外公开的属性,可以用KVC在外部对该属性赋值。一般写在.m文件中,外部是不可以直接去访问的。