Restkit:将数组映射到对象
Posted
技术标签:
【中文标题】Restkit:将数组映射到对象【英文标题】:Restkit: Mapping an array to object 【发布时间】:2014-10-09 09:28:48 【问题描述】:我的 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。
有什么想法可以做这样的映射吗?
【问题讨论】:
我不确定你在问什么。您想将这些值数组存储到数组中吗?所以你每次都会有Array1
、Array2
等包含 3 个字符串?
你能提供一个你的 json 样本吗?
修改了我的问题。如果还不清楚,请告诉我。
【参考方案1】:
我最终处理它的方式是向我的对象添加一个数组属性,并将整个数组映射到该属性(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];
];
【讨论】:
以上是关于Restkit:将数组映射到对象的主要内容,如果未能解决你的问题,请参考以下文章