Json转模型
现在客户端和服务器端之间的数据交换格式基本都是JSON,转换的时候要注意一些坑坑( ╯-_-)╯~┴—┴
NSNull和nil
OC中的空是nil,而Java中的空是null,nil代表指针不指向任何地址,内容为空,null就是代表真的空,C语言上的空,什么都没有,所以说当服务器端传来一个空字符串.
{"string":"null"}
在OC中被解析的时候,一般是先转化成Dictionary,然后用Model的NSString接收.
NSString *string = Dictionary[@"string"];
此时判断string是否为空会用
if([string isEqualToString:@""]) {
//Do Something
}
这个时候,判断永远是NO的,因为string指向的内存根本不是NSString,而是一个NSNull,Json序列化的时候null会被序列化成NSNull而不是空的NSString.
关键字问题
语言里都是有保留关键字的,所以说不能用关键字作为模型的属性,比如说new,因为JSON串中只是字符串,可以使用new,如果转化成Model的时候,就不能用服务端给出的字段作为属性了.
这个时候能找到服务端的写代码的,就去把他打一顿,找不到..就自己默默改然后加上备注就好了.