Мне повезло с использованием списков ...
Вам потребуется установить гем plist-3.0.0 (gem install plist IIRC)
Затем в вашем контроллере вы настраиваете что-то вроде этого:
plist = {'a' => 'b', 'c' => 'd', 'e' => {'f' => 'g', 'h' => {'i' => 'j'}}}.to_plist
render(:text => plist)
Тогда в настройках вашего приложения для iphone примерно так:
NSURL *url = [NSURL URLWithString:@"http://somewhere.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSURLResponse *response;
NSError *error;
NSData *plistData;
plistData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSPropertyListFormat format;
NSString *errorStr;
id imagesToRate = [NSPropertyListSerialization propertyListFromData:plistData mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&errorStr];
if(!imagesToRate) {
NSLog(errorStr);
} else {
NSLog(@"%@", [imagesToRate objectForKey:@"e"]);
}
Вы в значительной степени получаете полную свободу использования json (например, вам не нужно накатывать собственную XML-схему для форматирования данных, а сериализация так же проста, как вызов to_plist), плюс sdk поставляется с native код для обработки списков.
Но, если у вас все есть готовый веб-сервис, который выводит в формате json / xml, вы можете сохранить его и просто проанализировать материал на iphone, используя уже упомянутый материал (TouchXML, json-framework)