JSON
1、序列化(流):将字典或者数组发送给服务器之前,转化成二进制数据,方便网络传输
2、反序列化 :把从服务器接收到的二进制数据转换成NSDictionary 、 NSArray,简化程序开发,便于后续的字典转模型
JSON解析工具
0、苹果原生提供的反序列化方法:必须是iOS5.0以上版本
1、JSONKit:iOS5.0以下
(1)MRC的
(2)基本使用 + 性能测试
【亲测结果】— 比苹果原生的慢,性能较差
2、SBJson
3、TouchJSON
XML --可扩展标记语言
1、与HTML区别:HTML标记格式是固定的,但是XML是不固定的,可以复杂嵌套
2、两个解析方式:
(1)DOM解析
(2)SAX解析:
—》打开文档
—》开始节点:<videos>
<name>...
—》发现节点内容:xxx,一个内容可能会被解析多次
—》结束节点: </name>
</videos> 最后一个结束节点
—》结束文档
以上步骤中,2、3、4会重复执行,直到整个XML解析完成
其他注意点:
1、以后看到**类型的参数,又不想获取对应的内容,传入NULL就可以,传入nil也不会报错。
2、可以通过百度查到国家气象局的气象免费接口。
3、为什么要使用NSNumber?不用int
(1)反之服务器返回NULL,使用int设置会崩溃。
4、【亲测】可以使用id,作为属性
5、解决数组,字典不能输出中文的问题,使用NSArray的分类
#import "NSArray+Log.h"
@implementation NSArray (Log)
// 重写这个方法,就能够解决输出问题
// 专门为了本地话提供的一个调试方法,只要重写,不需要导入头文件,程序中所有的 NSLog 数组的方法,都会被替代
- (NSString *)descriptionWithLocale:(id)locale {
NSMutableString *strM = [NSMutableString stringWithString:@"(\n"];
// 遍历数组,拼接字符串
[self enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
[strM appendFormat:@"\t%@,\n", obj];
}];
[strM appendString:@")\n"];
return [strM copy];
}
@end
|