我有一个JSON看起来像这样的位置:RestKit任意键对象映射
{
"key1":[
{
"desc":"key1decs.",
"duration":50;
},{
"desc":"",
"duration":90;
},{
"desc":"Kurz vor...",
"duration":30;
}
],
"key2":[
{
"desc":"key2decs.",
"duration":50;
},{
"desc":"blabla",
"duration":90;
}
]
}
我试图做一个映射。但我因为不同的/不同的密钥而被卡住了。我试图没有KVC的映射,但似乎不是 正在工作。给我的错误: 失败的keyPath'key1.desc'处的值转换。 没有策略从'__NSArrayI'转换为'NSString'。等等每 属性。 我在网上看到,没有KVC的映射不支持数组作为 内部结构。 Plz,帮忙。这里的正确方法是什么?
编辑: 实体:
@interface Sendung : NSObject
@property (nonatomic, strong) NSString *description;
@property (nonatomic, strong) NSNumber *duration;
@property (nonatomic, strong) NSNumber *sendungkey;
@end;
控制器:
RKObjectMapping* mapping = [RKObjectMapping mappingForClass:[Sendung class]];
mapping.forceCollectionMapping = YES;
[mapping mapKeyOfNestedDictionaryToAttribute:@"sendungkey"];
[mapping mapKeyPath:@"(sendungkey).desc" toAttribute:@"description"];
[mapping mapKeyPath:@"(sendungkey).duration" toAttribute:@"duration"];
[[RKObjectManager sharedManager].mappingProvider addObjectMapping:mapping ];
mapping = [[RKObjectManager sharedManager].mappingProvider objectMappingForClass:[Sendung class] ];
[[RKObjectManager sharedManager] loadObjectsAtResourcePath:url objectMapping:mapping delegate:self];
这是我得到的时候NSlogin结果:( (空), (空), (空) (null), (null) )
是的,因为你的key1的内容是一个数组。你可以请张贴你的实体以及映射定义吗? – mja
我编辑了这个问题。谢谢!我尝试使用NSDictionary,但由于我不知道密钥,这使我很困惑( – Nigul
不能使用描述作为属性。 –