在网络请求中,有时会遇到这样一个需求
- 服务器需要我们上传一个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.......
网友评论