Если вы хотите более полнофункциональное решение, чем то, что предлагает автономная библиотека для разбора, вы можете взглянуть на RestKit: http://restkit.org/
Фреймворк оборачивает операции извлечения, анализа и отображения полезных нагрузок JSON в объекты. Это также позволяет вам обновлять удаленные представления с помощью POST / PUT'ов, возвращая объекты обратно с запросом. По умолчанию исходящие запросы кодируются в форме, но библиотека поставляется с классом для использования JSON в качестве проводного формата для отправки обратно на сервер.
На высоком уровне, вот как будут выглядеть ваши операции извлечения и публикации в RestKit:
- (void)loadObjects {
[[RKObjectManager sharedManager] loadObjectsAtResourcePath:[@"/path/to/stuff.json" delegate:self];
}
- (void)objectLoader:(RKObjectLoader*)loader didLoadObjects:(NSArray*)objects {
NSLog(@"These are my JSON decoded, mapped objects: %@", objects);
// Mutate and PUT the changes back to the server
MyObject* anObject = [objects objectAtIndex:0];
anObject.name = @"This is the new name!";
[[RKObjectManager sharedManager] putObject:anObject delegate:self];
}
Фреймворк заботится о синтаксическом анализе / кодировании JSON в фоновом потоке и позволяет вам объявить, как атрибуты в JSON отображаются на свойства вашего объекта. Сопоставление с классами с базовыми данными полностью поддерживается.