JSON数据解析的细节



一般通过网络接口请求下来的JSON数据都是 {"name" : "jack", "age" : 10} 或是里面的key-value多的,但是JSON的格式基本上很像OC中的字典和数组。这种只需要理清JSON – OC 之间转换关系,将JSON 转换为 OC数据类型,就可以进行运用了。但是有些数据接口在解析的过程中,会出现下面这种:

其中的一个key对应的value结构为:

commentlist = "[{\"user_id\":\"1\",\"content\":\"[\\u998b\\u5634][\\u6293\\u72c2]\",\"createtime\":\"1970-01-01 08:00:00\",\"realname\":\"\\u90d1\\u98de\"},{\"user_id\":\"1\",\"content\":\"[\\u563b\\u563b][\\u563b\\u563b][\\u563b\\u563b]\\u641e\\u5b9a\",\"createtime\":\"1970-01-01 08:00:00\",\"realname\":\"\\u90d1\\u98de\"},{\"user_id\":\"1\",\"content\":\"\\u641e\\u5b9a\",\"createtime\":\"1970-01-01 08:00:00\",\"realname\":\"\\u90d1\\u98de\"}]";

这个value为json串,不是简单的数组或字符串, 需要将其转换为数组或是字符串。系统提供了方法解决这个问题。

先用 NSUTF8StringEncoding 编码将这个字符串 转换为NSData类型:
NSData *myData = [[NSData alloc] initWithData:[ [ [NSString stringWithString: commentlist] dataUsingEncoding:NSUTF8StringEncoding]];

如果字符串结构式数组,然后 把NSData 转成数组:
 NSArray *arr = (NSArray *)[myData mutableObjectFromJSONData];

如果字符串结构式字典,然后 把NSData 转成字典 :

NSDictionary *resultDic = (NSDictionary *)[myData objectFromJSONData];

最后正常解析使用即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值