Restkit:将数组映射到对象

时间:2014-10-09 09:28:49

标签: ios restkit restkit-0.20

我的JSON看起来像这样:

[ [value1, value2, value3], [value1, value2, value3]]

我想迭代外部数组,并将每个内部数组映射到一个对象,例如:

@interface MyObject : NSObject
    @property (nonatomic, copy) NSString* key1;
    @property (nonatomic, copy) NSString* key2;
    @property (nonatomic, copy) NSString* key3;
@end

对于示例JSON,我应该得到两个映射对象,例如MyObject1,MyObject2,其中MyObject1映射到第一个内部数组,MyObject2映射到第二个内部数组。每个都将其属性映射到数组中的相应值,即key1 == value1,key2 == value2和key3 == value3。

有什么想法可以做这样的映射吗?

1 个答案:

答案 0 :(得分:0)

我最终处理它的方法是向我的对象添加一个数组属性,并将整个数组映射到该属性(NSManagedObject子类的可转换属性)

RKEntityMapping *responseMapping = [RKEntityMapping mappingForEntityForName:@"MyObject" inManagedObjectStore:managedObjectStore];

[responseMapping addPropertyMapping:[RKAttributeMapping attributeMappingFromKeyPath:nil toKeyPath:@"values"]];

映射完成后,我在完成块中分配其余值:

^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
        [mappingResult.array enumerateObjectsUsingBlock:^(MyObject *obj, NSUInteger idx, BOOL *stop) {
            obj.key1 = obj.values[0];
            obj.key2 = obj.values[1];
            obj.key3 = obj.values[2];
        }];