2012-01-24 7 views
1

iOS 5では、JSONオブジェクトを使用してWebサービスをクエリするにはどうすればよいですか? 私はいろいろなアプローチを試みましたが、それを動作させることはできません。 AFNetworkingまたはRestKitフレームワークが最も簡単なルートだと思われますが、どちらも経験はありません。私はiOS開発にも新しいです。iOS 5 JSONオブジェクトを使用したhttpクエリ

https://site.com/gis?QUERY={"ARGUMENTS":{"TO":{"OBJECT_TYPE":"BUILDING","OBJECT_ID":"1","TYPE":"IDENTIFIER"},"FROM":{"OBJECT_TYPE":"BUILDING","OBJECT_ID":"2","TYPE":"IDENTIFIER"},"PATHTYPES":["SIDEWALK"},"QUERYTYPE":"FINDPATH"} 

答えて

7

は、URLリクエストを作成するには、以下の例を参照してください。

はここで働く照会例です。これはjsonデータをポストします。あなたの場合、GET httpメソッドを使用しているので、jsonデータを投稿する必要はありません。単にURLに含めることができます。私の変数宣言のいくつかは表示されていないことに注意してください。

NSArray *keys = [NSArray arrayWithObjects:@"longitude", @"latitude", nil]; 
NSArray *objects = [NSArray arrayWithObjects:longitude, latitude, nil]; 

NSDictionary *jsonDictionary = [NSDictionary dictionaryWithObjects:objects forKeys:keys]; 

if([NSJSONSerialization isValidJSONObject:jsonDictionary]) 
{ 
    __jsonData = [NSJSONSerialization dataWithJSONObject:jsonDictionary options:0 error:nil]; 
    __jsonString = [[NSString alloc]initWithData:__jsonData encoding:NSUTF8StringEncoding]; 
} 

// Be sure to properly escape your url string. 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:@"https://site.com...etc"]; 
[request setHTTPMethod:@"POST"]; 
[request setHTTPBody: __jsonData]; 
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
[request setValue:[NSString stringWithFormat:@"%d", [__jsonData length]] forHTTPHeaderField:@"Content-Length"]; 

NSError *errorReturned = nil; 
NSURLResponse *theResponse =[[NSURLResponse alloc]init]; 
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&theResponse error:&errorReturned]; 

if (errorReturned) { 
    // Handle error. 
} 
else 
{ 
    NSError *jsonParsingError = nil; 
    NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers|NSJSONReadingAllowFragments error:&jsonParsingError]; 
} 
+0

__jsonDataと__jsonStringはどのような種類のオブジェクトですか? – nslocum

+0

NSDataとNSString – mservidio

関連する問題