在映射动态键时,我遇到了“找不到keyPath的对象映射:”的问题。
JSON响应为:
{
5471 = {
ImageCount = 0;
InventoryID = "3453dfdsfgt456t3";
MakeName = aaa;
ModelName = "a1";
StockNumber = 5471;
Year = 2012;
};
5516 = {
ImageCount = 0;
InventoryID = "fg456tgev65464b4v";
MakeName = bbb;
ModelName = b1;
StockNumber = 5516;
Year = 2002;
};
5567 = {
ImageCount = 0;
InventoryID = "fdg54646ghy67u65";
MakeName = ccc;
ModelName = c1;
StockNumber = 5567;
Year = 2008;
};
}上面keyPath值5567,5516,5471是随机的value.How可以定义密钥吗?我的类代码如下:
类:
@interface CategoryPic : NSObject
@property(nonatomic,strong)NSString *imageCount_pic;
@property(nonatomic,strong)NSString *inventoryID_pic;
@property(nonatomic,strong)NSString *makeName_pic;
@property(nonatomic,strong)NSString *modelName_pic;
@property(nonatomic,strong)NSString *stockNumber_pic;
@property(nonatomic,strong)NSString *year_pic;
@end
- (void)viewDidLoad{
RKObjectMapping* new = [RKObjectMapping mappingForClass:[CategoryPic class]];
[new mapKeyOfNestedDictionaryToAttribute:@"stockid"];
[new mapKeyPath:@"(stockid).ImageCount" toAttribute:@"imageCount_pic"];
[new mapKeyPath:@"(stockid).InventoryID" toAttribute:@"inventoryID_pic"];
[new mapKeyPath:@"(stockid).MakeName" toAttribute:@"makeName_pic"];
[new mapKeyPath:@"(stockid).ModelName" toAttribute:@"modelName_pic"];
[new mapKeyPath:@"(stockid).StockNumber" toAttribute:@"stockNumber_pic"];
[new mapKeyPath:@"(stockid).Year" toAttribute:@"year_pic"];
[[NewSingelton class].objectManager.mappingProvider setMapping:new forKeyPath:@"stockid"];
}发布于 2013-09-19 18:18:38
我会将其转换为数组,并使用随机数作为其中一个字段。
NSMutableArray *result = [NSMutableArray array];
NSMutableDictionary *entry = [NSMutableDictionary dictionary];
for (NSString *key in jsonObject.allKeys) {
entry = [NSMutableDictionary dictionaryWithDictionary:jsonObject[key]];
[entry addEntriesFromDictionary:@{@"randomNumber" : key}];
[result addObject:[NSDictionary dictionaryWithDictionary:entry];
}或者,如果您的数据样本是任何指示,则只需丢弃此键,因为它与StockNumber相同。
发布于 2013-09-19 23:40:38
stockid应该作为CategoryPic上的一个属性存在,以便将值保存在某个地方。如果数字始终与StockNumber匹配,那么您可以使用stockNumber_pic并删除该行映射。
https://stackoverflow.com/questions/18891150
复制相似问题