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

@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];
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值