Отвечая на ваш вопрос, да, вы можете определить отношения, используя RestKit, и представление JSON должно быть вложено, прочитайте его, чтобы увидеть пример этого и как отобразить его на ваших объектах.
Вы должны выполнить следующие действия:
Создайте свои объекты, используя свойства, которые вы получаете от API.
Вам необходимо установить сопоставления, связанные с каждым из ваших объектов
и JSON / XML, который вы получаете от API.
- Определите сопоставления между вашими объектами, если свойство объекта является другим объектом.
Из документации по сопоставлению объектов :
Необходимо проанализировать следующий JSON:
{ "articles": [
{ "title": "RestKit Object Mapping Intro",
"body": "This article details how to use RestKit object mapping...",
"author": {
"name": "Blake Watters",
"email": "blake@restkit.org"
},
"publication_date": "7/4/2011"
}]
}
Определите ваши объекты в Objective-C:
//author.h
@interface Author : NSObject
@property (nonatomic, retain) NSString* name;
@property (nonatomic, retain) NSString* email;
@end
//article.h
@interface Article : NSObject
@property (nonatomic, retain) NSString* title;
@property (nonatomic, retain) NSString* body;
@property (nonatomic, retain) Author* author; //Here we use the author object!
@property (nonatomic, retain) NSDate* publicationDate;
@end
Установить сопоставления:
// Create our new Author mapping
RKObjectMapping* authorMapping = [RKObjectMapping mappingForClass:[Author class]];
// NOTE: When your source and destination key paths are symmetrical, you can use mapAttributes: as a shortcut
[authorMapping mapAttributes:@"name", @"email", nil];
// Now configure the Article mapping
RKObjectMapping* articleMapping = [RKObjectMapping mappingForClass:[Article class]];
[articleMapping mapKeyPath:@"title" toAttribute:@"title"];
[articleMapping mapKeyPath:@"body" toAttribute:@"body"];
[articleMapping mapKeyPath:@"author" toAttribute:@"author"];
[articleMapping mapKeyPath:@"publication_date" toAttribute:@"publicationDate"];
// Define the relationship mapping
[articleMapping mapKeyPath:@"author" toRelationship:@"author" withMapping:authorMapping];
[[RKObjectManager sharedManager].mappingProvider setMapping:articleMapping forKeyPath:@"articles"];
Надеюсь, это вам пригодится!