2013-01-08 25 views
0

我正在用對象數組打擊Web服務。但是在服務器端,它們只對所有字段獲得空值。如何將對象數組發送給JSON?

客戶端代碼:

 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

我廢棄SBJson的東西,只是使用本機的控制...

盡一切一樣的,你正在做的,但除去SBJsonWriter的東西,這樣做是爲了設置請求的身體...

[urlRequest setHTTPBody:[NSJSONSerialization dataWithJSONObject:jsonArray options:NSJSONWritingPrettyPrinted error:&error]]; 

這應該有效。

0

謝謝..應用程序工作正常,沒有任何修改。問題出在服務器端。但我認爲我們可以採用您的建議而不是使用外部框架。

在這兩個我越來越喜歡這個JSON對象的情況下,

JSON String : 
[{"rollNo":"3","FirstName":"Ezhil","LastName":"Arasu"}, 
    {"rollNo":"4","FirstName":"XYZ","LastName":"ABC"}] 
相關問題