JSON字符串与NSDictionary和NSArray之间的转化
2015-11-05 00:30
696 查看
#pragma mark--把字典和数组转换成json字符串 +(NSString *)stringTOjson:(id)temps //把字典和数组转换成json字符串 { NSData* jsonData =[NSJSONSerialization dataWithJSONObject:temps options:NSJSONWritingPrettyPrinted error:nil]; NSString *strs=[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; return strs; }
一、将NSDictionary或NSArray转化为JSON串 // 将字典或者数组转化为JSON串 - (NSData *)toJSONData:(id)theData{ NSError *error = nil; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:theData options:NSJSONWritingPrettyPrinted error:&error]; if ([jsonData length] > 0 && error == nil){ return jsonData; }else{ return nil; } } 使用这个方法的返回,我们就可以得到想要的JSON串 NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
二、将JSON串转化为NSDictionary或NSArray 将NSString转化为NSData [jsonString dataUsingEncoding:NSASCIIStringEncoding]; // 将JSON串转化为字典或者数组 - (id)toArrayOrNSDictionary:(NSData *)jsonData{ NSError *error = nil; id jsonObject = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingAllowFragments error:&error]; if (jsonObject != nil && error == nil){ return jsonObject; }else{ // 解析错误 return nil; } }
三、将JSON串与NSArray和NSDictionary的操作进行封装 当然,也有很多时候,我们将这些操作,分别定义在NSObject和NSString的一个分类中 直接贴: 1.将NSString转化为NSArray或者NSDictionary #import "NSString+JSONCategories.h" @implementation NSString(JSONCategories) -(id)JSONValue; { NSData* data = [self dataUsingEncoding:NSUTF8StringEncoding]; __autoreleasing NSError* error = nil; id result = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]; if (error != nil) return nil; return result; } @end 2.将NSArray或者NSDictionary转化为NSString #import "NSObject+JSONCategories.h" @implementation NSObject (JSONCategories) -(NSData*)JSONString; { NSError* error = nil; id result = [NSJSONSerialization dataWithJSONObject:self options:kNilOptions error:&error]; if (error != nil) return nil; return result; } @end
相关文章推荐
- jsp编程去除空白行的方法
- JSP基于dom解析xml实例详解
- JS日期加减,日期运算代码
- javascript常用函数(2)
- 如何防止JavaScript自动插入分号
- JS实现slide文字框缩放伸展效果代码
- JavaScript实现cookie的写入、读取、删除功能
- JS实现自定义简单网页软键盘效果代码
- JS实现的新浪微博大厅文字内容滚动效果代码
- JS使用cookie实现DIV提示框只显示一次的方法
- JS使用正则表达式除去字符串中重复字符的方法
- JavaScript精炼之构造函数 Constructor及Constructor属性详解
- javascript实现tab切换的四种方法
- js实现选中页面文字将其分享到新浪微博
- Javascript中的return作用及javascript return关键字用法详解
- javascript实现tab切换的两个实例
- JavaScript数组去重的五种方法
- js如何实现淡入淡出效果
- 我们程序员为什么要关注 JavaScript ?
- Javascript模块化编程(三):require.js的用法