@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];
}
【适合初学者】简单代码讲述json数据与oc对象互相转化
最新推荐文章于 2023-06-08 10:16:06 发布