iOS-json字符串转为对象
来源:互联网 发布:数据挖掘书籍推荐 编辑:程序博客网 时间:2024/06/01 21:36
场景
在项目开发中,有时会遇到这种情况:服务器返回一个json字符串给前端。前端需要把json转换为相应的对象。
比如:服务器返回这样的数据:
在编译器打印出来是这样的:(这是编译器处理过的,幻觉...){"img_url":"http://www.nsr.net.cn/fet/img/2016/1216101053106.jpg","video_url":"https://apps.gtax.cn/static/video/zhanghui/1216/1.mp4","video_duration":"59:03","title":"第1节 公益捐赠、回迁房、股权激励","infor":"\n 2016财税45号关于公益股权捐赠企业所得税政策问题的通知\n货物捐赠:增值税暂行条例实施细则第四条(八)\n增值税暂行条例第七条 纳税人销售货物或者应税劳务的价格明显偏低并无正当理由的,由主管税务机关核定其销售额。\n2016财税36号营业税改征增值税实施办法\n第十四条 下列情形视同销售服务、无形资产或者不动产:(一)单位或者个体工商户向其他单位或者个人无偿提供服务,但用于公益事业或者以社会公众为对象的除外。\n2012国税函108号关于中国移动通信集团广东有限公司及其关联机构向第16届亚洲运动会提供服务赞助有关营业税问题的通知\n企业会计准则第7号——非货币性资产交换\n股权激励:1998国税发9号、2005财税35号、2005国税函482号、2006国税函902号、2009财税40号 、2009财税5号、2009国税函461号 、2011公告27号、2012公告18号、2015公告80号、2016财税101号 、2016公告62号\n "}
思考
怎么处理这种\"img_url\":\"http://www.nsr.net.cn/fet/img/2016/1216101053106.jpg\",\"video_url\":\"https://apps.gtax.cn/static/video/zhanghui/1216/1.mp4\",\"video_duration\":\"59:03\".....格式的json字符串?
这是一种笨的方法,不推荐使用:
+ (NSDictionary *)convertjsonStringToDict:(NSString *)jsonString{ NSArray *array = [jsonString componentsSeparatedByString:@","]; if (!jsonString) { return @{}; } NSMutableDictionary *dict = [NSMutableDictionary new]; for (int i = 0; i< array.count; i++) { NSString *string = array[i]; NSArray *keyValue = [string componentsSeparatedByString:@":\""]; //获取Key NSString *key = keyValue[0]; if (i==0) { key = [key substringWithRange:NSMakeRange(2, key.length-3)]; } else{ key = [key substringWithRange:NSMakeRange(1, key.length-2)]; } //获取value NSString *value = @""; if (keyValue.count>1) { value = keyValue[1]; if (i== array.count -1) { value = [value substringWithRange:NSMakeRange(0, value.length-2)]; } else{ value = [value substringWithRange:NSMakeRange(0, value.length-1)]; } } [dict setObject:value forKey:key]; } return dict;}
正确的解决方法
如果一开始想到上面的那种方法,证明对序列化的概念还没有完全掌握。废话不多说,奉上一段炒鸡简蛋的方法:
+ (NSDictionary *)convertjsonStringToDict:(NSString *)jsonString{ NSDictionary *retDict = nil; if ([jsonString isKindOfClass:[NSString class]]) { NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; retDict = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:NULL]; return retDict; }else{ return retDict; }}
结果
阅读全文
0 0
- iOS-json字符串转为对象
- JSON字符串转为对象
- JS JSON对象转为字符串
- C# json字符串转为对象
- 后台对象转为json字符串
- 各种对象转为json字符串
- 将json字符串转为json对象
- ios json对象转为对象数组
- ios json对象转为对象数组
- JackSon将一个对象转为Json字符串
- javascript xml字符串转为JSON对象
- Json格式字符串转为对象源码
- js 将json字符串转为js对象
- java将对象转为json字符串
- C# json字符串转为对象及JavaScriptSerializer:
- 将Json字符串转为实体对象
- javascript中由字符串转为json对象
- JSON.parseObject将字符串转为bean对象
- Android中取消标题栏
- Python打造漏洞扫描器 1
- java &与&& |与||的区别
- PHP基础学习之文件操作。
- Struts2基础学习(Action)-02
- iOS-json字符串转为对象
- c3p0,dbcp与druid 三大连接池的区别
- jquery $.extends
- 德才论
- js判断数组里是否有重复元素的方法
- Java动态代理
- 学习【设计模式】从简单开始----------------三种工厂模式
- Struts2基础学习(数据处理)-03
- 常用数据库连接池 (DBCP、c3p0、Druid) 配置说明