Все такие библиотеки работают через
KVC.
Суть в том что у вас есть NSDictionary, полученный из json-строки. Вы итерируетесь по всем ключам словаря и смотрите - если значение простое - не словарь и не массив, используете метод объекта setValue:forKey: чтобы установить значение из json. Если значение массив/словарь - создаете нужный объект, инициализируете его словарем и снова записываете в объект и т.д.