NSDictionary或NSArray与JSON字符串相互转换
来源:互联网 发布:bluestacks mac版 编辑:程序博客网 时间:2024/04/29 15:37
NSDictionary或NSArray与JSON字符串相互转换
在iOS 5 中,苹果引入了一个解析JSON串的NSJSONSerialization类。
通过该类,我们可以完成JSON数据与NSDictionary和NSArray之间的转化。
以前,我记得我用的是第三方的插件。但是,苹果出了这套解析后,效率也大大了超过了,所有的解析第三方类库。所以,推荐使用NSJSONSerialization类来完成转化。
一、将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
希望对你有所帮助!
0 0
- NSDictionary或NSArray与JSON字符串相互转换
- NSDictionary或NSArray与JSON字符串相互转换
- NSDictionary或NSArray与JSON字符串相互转换
- Swift JSON 字符串 和 对象(NSArray,NSDictionary) 相互转换
- nsdictionary ,nsarray 和 json 字符串 的转换
- Json 与 NSDictionary 或 NSArray 互转
- ios json 与JSON ,NSDictionary相互转换
- JSON字符串与NSDictionary和NSArray之间的转化
- NSData NSDate NSString NSArray NSDictionary 相互转换
- NSData NSDate NSString NSArray NSDictionary 相互转换
- NSDate NSString NSArray NSDictionary 数据类型相互转换
- NSData NSDate NSString NSArray NSDictionary 相互转换
- iOS NSDictionary JSON 相互转换
- IOS基础-NSArray、NSDictionary转JSON字符串
- JSON对象与JSON字符串相互转换
- JSON对象与JSON字符串相互转换
- json字符串与json对象相互转换
- json字符串与json对象相互转换
- Intel 性能监视器
- Recover Binary Search Tree 修正二叉查找树
- 安装mysql 出现错误Unable to update security settings. Access denied for user 'root'@'localhost' 的解决
- java clone方法
- android 基于HttpClient的https请求
- NSDictionary或NSArray与JSON字符串相互转换
- SpriteKit快速入门和新时代iOS游戏开发指南
- 使用OpenCV时的小技巧(待续)
- 趋势交易
- ORA-00600: internal error code, arguments: [kfioTranslateIO03], [], [], [], [], [], [], [], [], [],
- OnPaint()函数的作用原理
- Same Tree 判断两棵树是否相等
- 到哪里下载专业所需的各种软件
- USB芯片 收发数据