您的位置:首页 > Web前端 > JavaScript

【适合初学者】简单代码讲述json数据与oc对象互相转化

2014-08-04 20:12 465 查看
@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];

//第一部分,如何将一个json数据转化成一个oc的对象
//先写入一个json的字符串
NSString *jsonStr = @"{\"name\":\"zhangsan\",\"age\":\"20\",\"dog\":{\"name\" : [\"xiaohei\",\"xiaohuang\"],\"age\" : \"6\"}}";
//将这个jsonStr的字符串对象存储进data对象中,并采用UTF8编码
NSData *data = [jsonStr dataUsingEncoding:NSUTF8StringEncoding];

//将这个data数据用类方法转换成dic的字典对象,同时支持fragenmts分片式管理
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];

//取出dic字典里dog的名字
NSLog(@"%@",dic[@"dog"][@"name"]);

//取出dic字典里dog对象
NSString *str = [dic objectForKey:@"dog"];
NSLog(@"%@",str);

//新建一个dogDic字典对象,取出原字典dic中的dog对象,同时新建一个数组array,并将dogDic中的name的两个值赋给array
NSDictionary *dogDic = [dic objectForKey:@"dog"];
NSArray *array = [dogDic objectForKey:@"name"];
NSLog(@"%@",array);

//新建一个num,取出dic中的age的值赋给num
NSNumber *num = [dic objectForKey:@"age"];
NSLog(@"%@",num);

//============================华丽丽的分割线==================================

//第二部分,如何将一个OC的对象转化成json数据
NSArray *array1 = @[@"Jim",@"james",@"Alex",@{@"age" :@"19", @"height" :@"60"}];

//讲、将array1存储到data2里,方法是NSJSONWritingPrettyPrinted
NSData *data2 = [NSJSONSerialization dataWithJSONObject:array1 options:NSJSONWritingPrettyPrinted error:nil];
NSString *str2 = [[NSString alloc] initWithData:data2 encoding:NSUTF8StringEncoding];
NSLog(@"%@",str2);
//将str2写入桌面的文件xxx.json中
[str2 writeToFile:@"/Users/gaozhenyusky/Desktop/xxx.json" atomically:YES encoding:NSUTF8StringEncoding error:nil];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐