问题描述
- iPhone应用-JSON请求失败
- Json格式如下,要发送请求到服务器,但是返回的是错误500。
{""firstName"":""Sharath K""lastName"":""babu""moMerchantAddresses"":[{""email"":""abc@abc.co.in""}]} >
谢谢您的帮助。
NSMutableArray *objects = [NSMutableArray arrayWithObjects:@""Sharath""@""babu""@""[{""email"":""abc@abc.co.in""}]"" nil]; NSMutableArray *keys = [NSMutableArray arrayWithObjects:@""firstName""@""lastName""@""moMerchantAddresses"" nil];NSMutableDictionary *jsonDict = [NSMutableDictionary dictionaryWithObjects:objects forKeys:keys];NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonDict options:NSJSONWritingPrettyPrinted // Pass 0 if you don't care about the readability of the generated string error:nil];NSString *postLength = [NSString stringWithFormat:@""%d""[jsonData length]];ServiceInterface *service = [[ServiceInterface alloc] init];service.theDelegate = self;service.theSuccessMethod = @selector(responseMerchantCreationService:);service.theFailureMethod = @selector(requestFailedWithError:);[self addServiceInterfaceToServiceStack:service];NSString* stringURL = [kBase_URL stringByAppendingString:@""/merchant/create""];NSString* webStringURL = [stringURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];NSURL* url = [NSURL URLWithString:webStringURL];NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];[request setHTTPMethod:@""POST""];[request setValue:postLength forHTTPHeaderField:@""Content-Length""];[request setValue:@""application/json"" forHTTPHeaderField:@""Accept""];[request setValue:@""application/json"" forHTTPHeaderField:@""Content-Type""];[request setHTTPBody:jsonData];[request setTimeoutInterval:30.0f];NSLog(@""request file :: %@""request);[service startWithRequest:request];service = nil;
解决方案
NSMutableDictionary *emailDict = [[NSMutableDictionary alloc] initWithCapacity:0];[emailDict setObject:@""abc@abc.co.in"" forKey:@""email""];NSMutableArray *emailArr = [ [NSMutableArray alloc] init];[emailArr addObject:emailDict];NSMutableDictionary *mainDict = [[NSMutableDictionary alloc] initWithCapacity:0];[mainDict setObject:@""Sharath"" forKey:@""firstName""];[mainDict setObject:@""babu"" forKey:@""lastName""];[mainDict setObject:emailDict forKey:@""moMerchantAddresses""];
修改mainDict为:
NSData *jsonData = [ NSJSONSerialization dataWithJSONObject:mainDict options:NSJSONWritingPrettyPrinted // Pass 0 if you don't care about the readability of the generated string error:nil];
时间: 2024-08-26 09:17:07