关于NSJSONSerialization

关于NSJSONSerialization,官方文档中有如下介绍:
You use the NSJSONSerialization class to convert JSON to Foundation objects and convert Foundation objects to JSON.
 
An object that may be converted to JSON must have the following properties:
 
The top level object is an NSArray or NSDictionary.
All objects are instances of NSString, NSNumber, NSArray, NSDictionary, or NSNull.
All dictionary keys are instances of NSString.
Numbers are not NaN or infinity.
我们能利用NSJSONSerialization将JSON转换成Foundation对象,也能将Foundation对象转换成JSON,转换成JSON的对象必须具有如下属性:
顶层对象必须是NSArray或者NSDictionary
所有的对象必须是NSString、NSNumber、NSArray、NSDictionary、NSNull的实例
所有NSDictionary的key必须是NSString类型
数字对象不能是非数值或无穷
 
接下来看看如何使用,首先是如何生成JSON格式的数据:
我这里选用项目中的代码片段来进行简要介绍,以下显示了登陆请求JSON格式数据的生成
[cpp] 
NSDictionary *registerDic = [NSDictionary dictionaryWithObjectsAndKeys:uuid,@"_id",userName,@"login_name",password,@"password", nil];  
    if ([NSJSONSerialization isValidJSONObject:registerDic]) {  
        NSError *error;  
        NSData *registerData = [NSJSONSerialization dataWithJSONObject:registerDic options:NSJSONWritingPrettyPrinted error:&error];  
        NSLog(@"Register JSON:%@",[[NSString alloc] initWithData:registerData encoding:NSUTF8StringEncoding]);  
    }  
 
NSDictionary中的key就是json字符串中的key,object就是json字符串中的value,isValidJSONObject:方法是检测Foundation对象能否合法转换为JSON对象,dataWithJSONObject:options:error方法是将Foundation对象转换为JSON对象,参数NSJSONWritingPrettyPrinted的意思是将生成的json数据格式化输出,这样可读性高,不设置则输出的json字符串就是一整行。
 
解析服务端返回的json格式数据:
[cpp]  
NSDictionary *resultJSON = [NSJSONSerialization JSONObjectWithData:resultData options:kNilOptions error:&error];  
 
获取返回字符串中key为status的value:
[cpp]  
NSString *status = [resultJSON objectForKey:@"status"];  
 
以上就简要的介绍了下NSJSONSerilazation的使用,不是很全面,以后有时间再深入详解一下。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值