通过JSON实现NSString,NSDictionary(NSArray)相互转化
2015-08-06 09:38
507 查看
照旧先上图:
理论上,NSDictionary,NSArray是不能直接转化为NSString格式,就算通过万能的NSlog,打印出来也是unicode格式。
如何保存汉字并能保持字典和数组的原有格式?
比较一劳永逸的方法:Method swizzing方法替换原函数
http://www.tuicool.com/articles/Y3aYNz
还有种方法就是用json格式做中转
JOSN->NSDictinary
Created with Raphaël 2.1.0JSON(NSString)NSDataObject
上面是json格式的String转化为字典其他类型的流程,其中要经过一次NSData的转化,其他类型转化为String也同样,前提是数据结构符合json格式。
废话不说,上代码:
String -> Dictionary
Dictonary -> String
上面分别是NSString,NSObject的category中的方法,必须用NSData做中介。
NSDictionary * dictnew = [[NSDictionary alloc]initWithObjectsAndKeys:@"花姐",@"name",@"167",@"height", nil]; NSLog(@"dictnew:%@",dictnew);
理论上,NSDictionary,NSArray是不能直接转化为NSString格式,就算通过万能的NSlog,打印出来也是unicode格式。
如何保存汉字并能保持字典和数组的原有格式?
比较一劳永逸的方法:Method swizzing方法替换原函数
http://www.tuicool.com/articles/Y3aYNz
还有种方法就是用json格式做中转
JOSN->NSDictinary
Created with Raphaël 2.1.0JSON(NSString)NSDataObject
上面是json格式的String转化为字典其他类型的流程,其中要经过一次NSData的转化,其他类型转化为String也同样,前提是数据结构符合json格式。
废话不说,上代码:
String -> Dictionary
-(NSString*)strToJson{ NSData* data = [self dataUsingEncoding:NSUTF8StringEncoding]; NSError * err = nil; id jsonobj = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&err]; if(err!= nil)return nil; return jsonobj; }
Dictonary -> String
-(NSString*)objectTojson{ NSError* err= nil; NSData* data = [NSJSONSerialization dataWithJSONObject:self options:kNilOptions error:&err]; NSString * jsons = nil;//[[NSString alloc]init]; if(err==nil){ jsons = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; } return jsons; }
上面分别是NSString,NSObject的category中的方法,必须用NSData做中介。
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- IOS 改变键盘颜色代码
- Android和IOS的浏览器中检测是否安装某个客户端的方法
- javascript实现阻止iOS APP中的链接打开Safari浏览器
- iOS开发之路--微博OAuth授权_取得用户授权的accessToken
- ios通过按钮点击异步加载图片
- 仅需几行代码实现方便易用的状态栏指示器
- ios中图像进行压缩方法汇总
- IOS检测指定路径的文件是否存在