粘贴事例代码如下:
NSURL *url = [NSURL URLWithString:@"http://127.0.0.1/post/postjson.php"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
request.HTTPMethod = @"post";
//向服务器提交json数据
//序列化 => 将字典或者数组转换成二进制数据
//反序列化 => 把二进制数据转换成字典或者数组
// NSDictionary *dict1 = @{@"name":@"张三",@"age":@20};
// NSDictionary *dict2 = @{@"name":@"李四",@"age":@30};
// NSArray *array = @[dict1,dict2];
/**
以下两个方法都是kvc的方法,kvc是cocoa的大招,是一种间接给对象属性设置数据的方式
1,从网络上获取到字典或者数组 => 字典转模型 => setValuesForKeysWithDictionary
2,将自定义对象以JSON的格式传递给服务器 =》模型转字典 => dictionaryWithValuesForKeys
数组中指定什么属性,就转换什么属性
*** kvc最好用的地方,核心动画,xml解析
*** json是一种特殊格式的字符串
提示:再将对象序列化成json格式的数据之前,可以使用- [NSJSONSerialization isValidJSONObject:p] 检测对象是否可以被序列化。
*/
CZPerson *p1 = [[CZPersonalloc] init];
p1.name = @"张三";
p1.age = 30;
// id obj = [p1dictionaryWithValuesForKeys:@[@"age",@"name"]];
CZPerson *p2 = [[CZPersonalloc] init];
p2.name = @"李四";
p2.age = 20;
id obj1 = [p1 dictionaryWithValuesForKeys:@[@"name",@"age"]];
id obj2 = [p2 dictionaryWithValuesForKeys:@[@"name",@"age"]];
NSArray *array = @[obj1,obj2];
if([NSJSONSerialization isValidJSONObject:array]){
NSData *data = [NSJSONSerialization dataWithJSONObject:arrayoptions:1error:NULL];
request.HTTPBody = data;
}else{
NSLog(@"非法格式");
return;
}
[[[NSURLSession sharedSession]dataTaskWithRequest:request completionHandler:^(NSData*data, NSURLResponse *response, NSError *error) {
NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"%@",str);
}] resume];