数据解析(网络返回)

我们从服务器得到的数据有时候不可能一开始就是字典\数组数据,有时候需要我们对得到的数据进行转换

1、当服务器返回的是的data数据类型,我们可能需要转换成字典或数组才能使用,使用下方法转换:

复制代码
 {
    // Data 转 字典 ,其中responseObject为返回的data数据
        NSDictionary *resultDictionary = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
        NSLog(@"resultDictionary: %@", resultDictionary);

        // Data 转 数组 ,其中responseObject为返回的data数据
        NSArray *resultArray = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
        NSLog(@"resultArray: %@", resultArray);
}
复制代码

 

2、当以上方法打印出的字典\数组值为null时(可能返回带有其他特殊字符串),说明上面的方法不可行,我们就试试

encoding:NSUTF8StringEncoding(UTF8编码)

,需要将返回的data数据转成字符串:

{
    NSString *resultString  =[[ NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
}

 

当打印出来的字符串,开头不是以 (字典)或  (数组)符号开头,而是一串字符, 需要把多余的字符串删除

1
2
3
4
{
        NSString *changeStr = [StringObjects stringByReplacingOccurrencesOfString:@"renderReverse&&renderReverse(" withString:@""];
        NSString *jsonStr = [changeStr substringToIndex:tempStr.length-1];
}   

   最后把解析string转data,再把data转 字典:

1
2
3
{
      NSMutableDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:[json:NSUTF8StringEncoding] options:0 error:nil];
}

  

 

posted @ 2017-02-17 17:48  timo1234  阅读(286)  评论(0)    收藏  举报
编辑推荐:
· golang中写个字符串遍历谁不会?且看我如何提升 50 倍
· C# 代码如何影响 CPU 缓存速度?
· 智能桌面机器人:使用 .NET 为树莓派开发 Wifi 配网功能
· C# 模式匹配全解:原理、用法与易错点
· 记一次SSD性能瓶颈排查之路——寿命与性能之间的取舍
阅读排行:
· 时隔半年,拾笔分享:来自一个大龄程序员的迷茫自问
· 《程序员的底层思维》读后感
· 曾经风光无限的 Oracle DBA 已经落伍了吗?
· 不写一行代码 .NET 使用 FluentCMS 快速构建现代化内容管理系统(CMS)
· WineHQ 发布的 Framework Mono 6.14 的这个特性对Windows Form
点击右上角即可分享
微信分享提示