美文网首页
ios网络请器之对象转json数据格式和json字符串转对象

ios网络请器之对象转json数据格式和json字符串转对象

作者: 落枫猿 | 来源:发表于2017-11-30 12:17 被阅读0次

    在网络请求中,有时会遇到这样一个需求

    • 服务器需要我们上传一个json对象,列如:

    上传的格式: {
    @"school":@"aaa",
    @"family": @"bbb",
    @"exes": [
    {
    @"name":@"张三",
    @"age": @"20",
    @"sex": @"1"
    }
    ]
    }

    如果将这种格式的数据直接上传至服务器,那肯定是不行的,所以得将数据重新转换下格式,将对象转换为json格式,下面就是代码👇

        NSMutableDictionary *dic = [NSMutableDictionary dictionary];
        [dic setObject:@"张三" forKey:@"name"];
        [dic setObject:@"20" forKey:@"age"];
        [dic setObject:@"1" forKey:@"sex"];
     
     //创建一个数组出来,将dic装进去
       NSMutableArray *arr = [NSMutableArray array];
        [arr addObject:dic];
    
        NSError *error = nil;
       //将arr转换为data
        NSData *data = [NSJSONSerialization dataWithJSONObject:arr options:NSJSONWritingPrettyPrinted error:&error];
       //转化为字符串格式
        NSString *jsonStr = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
    
    

    这时得到的"jsonStr",就是我们要上传至服务器的json对象.

      [NetWorkingManager postWithurl:@""  and
    params:@{@"school":@"aaa",@"family":@"bbb",@"exes":jsonStr} 
      success:^(id response) {
    
        } error:^(NSError *error) {
            
        }];
    

    到现在为止:数据就可以轻松上传至服务器了!!!!


    还有一种就是从服务器获取到的数据格式是json字符串格式的,这时需要转换成字典类型的对象格式,下面是从服务器返回的数据格式👇

    "BUSINESS_OUTARGS" = "{"order_id":"171130113608322250012","shop_id":"170915221839670250020"}"

    这时就需要转换成我们熟悉的字典格式:👇

        NSString *jsonStr = dict[@"BUSINESS_OUTARGS"];
        NSError *err = nil;
           //先将字符串转换成data格式
            NSData *data = [jsonStr dataUsingEncoding:NSUTF8StringEncoding];
          //再将data转成字典
            NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&err];
    

    最后我们得到了想要的数据!!!!
    就是这样beautifull.......

    相关文章

      网友评论

          本文标题:ios网络请器之对象转json数据格式和json字符串转对象

          本文链接:https://www.haomeiwen.com/subject/kiombxtx.html