首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Restkit用于随机密钥的动态映射

Restkit用于随机密钥的动态映射
EN

Stack Overflow用户
提问于 2013-09-19 17:34:59
回答 2查看 229关注 0票数 1

在映射动态键时,我遇到了“找不到keyPath的对象映射:”的问题。

JSON响应为:

代码语言:javascript
运行
复制
{
    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可以定义密钥吗?我的类代码如下:

类:

代码语言:javascript
运行
复制
@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"];

}
EN

回答 2

Stack Overflow用户

发布于 2013-09-19 18:18:38

我会将其转换为数组,并使用随机数作为其中一个字段。

代码语言:javascript
运行
复制
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相同。

票数 0
EN

Stack Overflow用户

发布于 2013-09-19 23:40:38

stockid应该作为CategoryPic上的一个属性存在,以便将值保存在某个地方。如果数字始终与StockNumber匹配,那么您可以使用stockNumber_pic并删除该行映射。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18891150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档