NSDictionary或NSArray与JSON字符串相互转换
来源:互联网 发布:2017淘宝重复开店 编辑:程序博客网 时间:2024/04/29 04:21
在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对象相互转换
- 北京华大口腔科专业
- divide-conquer逆序数计算-C++
- 软判决和硬判决
- 第九周项目六(2)换分币
- 关于获取浏览器窗口大小的代码
- NSDictionary或NSArray与JSON字符串相互转换
- Mysql导出数据库的表和所有的数据指令
- 第九周项目5:程序填充题1
- 三星手机NOTE3 N9005 N900A N900T N9006 上不了3G网络无信号 修复教程
- 重写UIButton属性
- 复制集概念
- 百度地图开发之GPS转百度坐标
- Android AlarmManager实现不间断轮询服务
- 第九周项目六警察抓小偷