我正在使用包含对象数组的Web服务。但是在服务器端,它们只获得所有字段的空值。
客户端代码是:
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:url];
NSURLConnection *connection= [[NSURLConnection alloc] initWithRequest:urlRequest
delegate:self];
//************DATA formation
NSMutableDictionary *jsonDict = [[NSMutableDictionary alloc]init];
NSMutableDictionary *jsonDict1 = [[NSMutableDictionary alloc]init];
[jsonDict setObject:@"3" forKey:@"rollNo"];
[jsonDict setObject:@"Ezhil" forKey:@"FirstName"];
[jsonDict setObject:@"Arasu" forKey:@"LastName"];
[jsonDict1 setObject:@"4" forKey:@"rollNo"];
[jsonDict1 setObject:@"XYZ" forKey:@"FirstName"];
[jsonDict1 setObject:@"ABC" forKey:@"LastName"];
NSArray *jsonArray=[[NSArray alloc]initWithObjects:jsonDict,jsonDict1, nil];
//Converting to JSON string.
SBJsonWriter *writer = [[SBJsonWriter alloc] init];
NSString *jsonString = [writer stringWithObject:jsonArray];
NSLog(@"JSON String : %@",jsonString);
//************Setting DATA in URL
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[urlRequest setHTTPBody:[jsonString dataUsingEncoding:NSUTF8StringEncoding]];
[connection start];
// Code for response....
我不知道我错了。任何人都可以帮我解决这个问题。 提前谢谢。
答案 0 :(得分:0)
我废弃了SBJson的东西,只使用原生控件......
执行与您正在执行的操作相同的操作,但删除SBJsonWriter并执行此操作以设置请求的正文...
[urlRequest setHTTPBody:[NSJSONSerialization dataWithJSONObject:jsonArray options:NSJSONWritingPrettyPrinted error:&error]];
这应该有效。
答案 1 :(得分:0)
谢谢..申请工作正常,没有任何修改。问题出在服务器端。但我认为我们可以采用您的建议而不是使用外部框架。
在这两种情况下我都得到像这样的json对象,
JSON String :
[{"rollNo":"3","FirstName":"Ezhil","LastName":"Arasu"},
{"rollNo":"4","FirstName":"XYZ","LastName":"ABC"}]