I know a little. I use something like the following:
NSString *params = [NSString stringWithFormat:@"data1=%@&data2=%@&data3=%@", a, b, c];
// Create the URL request
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://www.mysite.com/requestpage"]];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:[params dataUsingEncoding:NSUTF8StringEncoding]];
// Create url connection and fire request
NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
Then I have the following delegate (callback) methods ready to go: didReceiveResponse, didReceiveData, willCacheResponse, didFailWithError, and (the big one) connectionDidFinishLoading.
As for handling JSON response containing objects (or an array), I think you used to have to use a 3rd party library, but now all you have to do is convert the response to an NSDictionary or NSMutableDictionary (or NSArray or NSMutableArray) using something like the following:
NSError *jsonParsingError = nil;
myDictionary = [NSJSONSerialization JSONObjectWithData:jsonResponse options:NSJSONReadingMutableContainers error:&jsonParsingError];
Then it's very easy to get objects and arrays out of it:
myDictionary[@"result"]
myDictionary[@"list"][3]