我需要为我得到的json的所有对象创建映射吗?

时间:2015-02-19 07:45:13

标签: ios objective-c rest restkit

我对休息套件有疑问。

我需要为我得到的json的所有对象创建映射吗?或者我只能在这些对象之前提供映射,并且即使我没有为从Internet上加载的某些对象创建映射,restkit也能正常工作?

例如有这个类

@interface RKAUser : NSObject

@property (strong, nonatomic) NSString* nameString;

@property (strong, nonatomic) RKCard* card;

@end



@interface RKACard : NSObject

@property (strong, nonatomic) NSString* numberString;

@end



+ (RKMapping *)userMapping {
    RKObjectMapping *mapping = [RKObjectMapping mappingForClass:[RKAUser
 class]];

    [mapping addAttributeMappingsFromArray:@[@"nameString"]];

    return mapping;
}

我有json哪里有大约20个用户的信息  在这个json中有所有用户信息,包括nameString和他的卡号numberString。

但我只为nameString创建映射,并没有为卡创建映射

这个例子的问题是这个代码会起作用还是会崩溃,因为我没有提供所有的映射

另一个问题

我可以使用restkit来映射任何json信息吗? 信息应该来自某种休息服务器或休息套件可以从任何服务器映射json信息吗?如果信息不是来自服务器,它会起作用吗?

1 个答案:

答案 0 :(得分:1)

您只需要实现在创建映射时使用的属性。

JSON不需要来自服务器。您可以获取任何JSON文档,然后自己解析并使用RKMapperOperation结果。

RKMapperOperation *operation = [[RKMapperOperation alloc] initWithRepresentation:parsedJSON mappingsDictionary:yourMappingsDictionary];
NSError *error = nil;
[operation execute:&error];
if (!error) {
   NSArray *result = mapper.mappingResult.array;
}