通过JSON实现NSString,NSDictionary(NSArray)相互转化

简介: 照旧先上图:NSDictionary * dictnew = [[NSDictionary alloc]initWithObjectsAndKeys:@"花姐",@"name",@"167",@"height", nil];NSLog(@"dictnew:%@",dictnew);理论上,NSDictionary,NSArray是不能直接转化为NSStrin

照旧先上图:

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.0 JSON(NSString) NSData Object

上面是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做中介

相关文章
|
JSON JavaScript 网络安全
DOM转JSON的实现
DOM转JSON的实现
DOM转JSON的实现
|
存储 JSON 算法
Json字段选取器介绍和实现
Json字段选取器介绍和实现
298 0
Json字段选取器介绍和实现
|
存储 JSON 数据库
使用jackson的@JsonProperty()进行字段修改成自己想要的,并实现json字符串和list集合相互转换
使用jackson的@JsonProperty()进行字段修改成自己想要的,并实现json字符串和list集合相互转换
1314 0
使用jackson的@JsonProperty()进行字段修改成自己想要的,并实现json字符串和list集合相互转换
|
JSON 缓存 搜索推荐
手写JAVA实现个性化业务的Excel转JSON,效率提高99.99%
由JSON数据的格式可以看出,每读取一个目录数据,都可以看成一个JSONObject,JSONObject有两个键值对,text代表目录的名字、children代表子目录。 一个父目录可以有多个子目录,所以children用的JSONArray去表示。
798 0
手写JAVA实现个性化业务的Excel转JSON,效率提高99.99%
|
JSON 监控 前端开发
(扩展)网站流量日志分析--数据可视化-- vue 版--复杂 json 具体实现 | 学习笔记
快速学习(扩展)网站流量日志分析--数据可视化-- vue 版--复杂 json 具体实现
(扩展)网站流量日志分析--数据可视化-- vue 版--复杂  json 具体实现 | 学习笔记
|
JSON 前端开发 Java
json 的实现 | 学习笔记
快速学习 json 的实现,介绍了 json 的实现系统机制, 以及在实际应用过程中如何使用。
json 的实现 | 学习笔记
|
JSON 前端开发 JavaScript
js处理json数据(合并键值对相同的数据,指定键值对相加或拼接)、前端实现
js处理json数据(合并键值对相同的数据,指定键值对相加或拼接)、前端实现
941 0
js处理json数据(合并键值对相同的数据,指定键值对相加或拼接)、前端实现
|
XML JSON 前端开发
SpringBoot2.x系列教程15--SpringBoot中整合HttpMessageConverters实现JSON格式化
前言 在之前的章节中,壹哥 带着各位学习了如何在Spring Boot中进行SSM整合。那么接下来,我们会继续深入研究SpringBoot对SpringMVC框架的支持,学习SpringBoot如何进行更深度的定制化Web开发。 前面我讲过,SpringBoot严格的来说,应该是一种负责把其他已有框架整合在一起的工具,SpringBoot主要是把各种框架都整合集中在一起,简化我们的Web开发。所以很多的功能,其实都不是SpringBoot完成的,而是由SpringBoot中整合的其他框架来完成的。比如Web开发,更多的是由SpringMVC来完成,只是SpringBoot很好的把Spring
1463 0
|
JSON 前端开发 测试技术
接口测试平台优化:前端json格式化显示效果实现
接口测试平台优化:前端json格式化显示效果实现
接口测试平台优化:前端json格式化显示效果实现
|
JSON 前端开发 JavaScript
vue实现多接口轮询,并把json打包成json文件且压缩为zip包|8月更文挑战
vue实现多接口轮询,并把json打包成json文件且压缩为zip包|8月更文挑战