Я думаю, что json должен быть хорошим средством для анализа.json-framework позволяет легко превращать NSDictionary и примитивные объекты в данные json и наоборот.
Делает веб-сервисы используя json бриз.
{ name : value , name : value } = NSDictionary
[ value , value , value] = NSArray
NSString, NSNumber, BOOL and NSNull are the items it create, I believe.
проверить эту страницу https://github.com/stig/json-framework
Я включу некоторый код, который я использовал, который построен на основе json-фреймворка и работает с веб-сервисами json.
- (NSDictionary*) sendJSONRPCRequestTo:(NSString*) url
forCommand:(NSString*)command
withParamaters:(NSMutableArray*) parameters
synchronous:(BOOL) sendSynchronous
{
if (self.commandId == nil)
{
self.commandId = @"1";//Just set a commandID
}
NSMutableURLRequest *request = [self.baseTransaction makeNewRequestFor:url];
NSMutableDictionary *mainPackage = [NSMutableDictionary dictionary];
[mainPackage setValue:self.commandId forKey:@"id"];
[mainPackage setValue:command forKey:@"method"];
[mainPackage setValue:parameters forKey:@"params"];
NSString *jsonData = [mainPackage JSONRepresentation];
[request setValue:command forHTTPHeaderField:@"X-JSON-RPC"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
if (jsonData != nil && [jsonData isEqual:@""] == NO)
{
[request setHTTPMethod:@"POST"];
[request setValue:[[NSNumber numberWithInt:[jsonData length]] stringValue] forHTTPHeaderField:@"Content-Length"];
}
[request setHTTPBody:[jsonData dataUsingEncoding:NSUTF8StringEncoding]];
if (sendSynchronous)
{
NSHTTPURLResponse * response = nil;
NSError * error = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *jsonResult = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease];
NSDictionary *jsonDict = nil;
@try
{
jsonDict = [jsonResult JSONValue];
}
@catch (NSException * e)
{
NSLog(@"Error: %@",jsonResult);
jsonDict = [NSMutableDictionary dictionary];
[jsonDict setValue:self.commandId forKey:@"id"];
[jsonDict setValue:@"Unable to call function on server" forKey:@"error"];
[jsonDict setValue:[NSNull null] forKey:@"result"];
}
@finally
{
return jsonDict;
}
}
return nil;
}
Этот код используется против веб-сервисов jayrock на сервере .net.