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

照旧先上图:

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做中介

时间: 2024-09-20 04:26:33

通过JSON实现NSString,NSDictionary(NSArray)相互转化的相关文章

json数据与字符串的相互转化示例_javascript技巧

json转成string[需要引用json2.js文件]: 复制代码 代码如下: var arr=[{id:'id',name:'Spring'},{id:'id2',name:'Jane'}]; var str=JSON.stringify(arr); 结果:"[{id:'id',name:'Spring'},{id:'id2',name:'Jane'}]" string转化为json: 复制代码 代码如下: var str="[{id:'id',name:'Spring'

iOS中 动态热修补技术JSPatch 韩俊强的博客

iOS开发者交流群:446310206   所谓动态热修补就是把能够导致app 崩溃的严重bug,提交新版本到appstore 审核速度太慢影响用户使用,这时候就可以利用 JSPatch 可以让你用 JavaScript 书写原生 iOS APP.只需在项目引入极小的引擎,就可以使用 JavaScript 调用任何 Objective-C 的原生接口,获得脚本语言的优势:为项目动态添加模块,或替换项目原生代码动态修复 bug. 这里就不在赘述优缺点重点看实现! 每日更新关注:http://wei

iOS代码规范

这篇规范一共分为三个部分: 核心原则:介绍了这篇代码规范所遵循的核心原则. 通用规范:不局限于iOS的通用性的代码规范(使用C语言和Swift语言). iOS规范:仅适用于iOS的代码规范(使用Objective-C语言). 一. 核心原则 原则一:代码应该简洁易懂,逻辑清晰 因为软件是需要人来维护的.这个人在未来很可能不是你.所以首先是为人编写程序,其次才是计算机: 不要过分追求技巧,降低程序的可读性. 简洁的代码可以让bug无处藏身.要写出明显没有bug的代码,而不是没有明显bug的代码.

详解iOS的数据存储_IOS

iOS应用数据存储的常用方式     1.XML属性列表(plist)归档.     2.Preference(偏好设置).     3.NSKeyedArchiver归档.     4.SQLite3     5.Core Data 应用沙盒 每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录)与其他文件系统隔离.应用必须待在自己的沙盒里,其他应用不能访问该沙盒. 模拟器应用沙盒的根路径在: (apple是用户名, 6.0是模拟器版本) /Users/apple/Library/App

Objective-C编程中语句和变量的一些编写规范建议_IOS

语句 条件语句 条件语句体应该总被大括号包围.只有一行代码最好也加上,否则会带来安全隐患. 复制代码 代码如下: // 推荐 if (!error) {     return success; } // 不推荐 if (!error)     return success; if (!error) return success; 尤达表达式(Yoda) 不要使用尤达表达式.(名字起源于星球大战中尤达大师的讲话方式,总是用倒装的语序) 复制代码 代码如下: // 推荐 if ([myValue i

将字典或者数组转换成JSON数据或者字符串

将字典或者数组转换成JSON数据或者字符串 源码: NSDictionary+JSON.h 与 NSDictionary+JSON.m // // NSDictionary+JSON.h // Category // // Created by YouXianMing on 15-2-09. // Copyright (c) 2014年 YouXianMing. All rights reserved. // #import <Foundation/Foundation.h> @interfa

iOS开发之JSON解析

JSON解析步骤: - (NSArray *)products {     if (_products == nil) { //第一步:获取JSON文件的路径: NSString *path = [[NSBundle mainBundle] pathForResource:@"products.json" ofType:nil];         //第二步:加载JSON文件: NSData *data = [NSData dataWithContentsOfFile:path];  

网络之Json生成解析

// // ViewController.m // Json // // Created by City--Online on 15/4/28. // Copyright (c) 2015年 CYW. All rights reserved. // #define strUrl @"http://app.api.autohome.com.cn/autov3.2/news/newslist-a2-pm1-v3.2.0-c0-nt0-p1-s20-l0.html" #import &quo

预告 ARC 重写:iOS 实现的 json 数据源的 O-R Mapping

iOS 实现的 json 数据源的 O-R Mapping 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 时隔几年之久,再来看这四天写出的成果,不禁对那时的自已心生敬佩. 想来,现在看这堆风格