首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RestKit对象映射-一个实体,两个映射

RestKit对象映射-一个实体,两个映射
EN

Stack Overflow用户
提问于 2012-03-26 21:22:48
回答 1查看 684关注 0票数 0

在我的last question was solved之后,我从服务器接收到的JSON更改为下面的内容,我不得不处理映射以使用数据保存数据。

实体

代码语言:javascript
复制
 Key 
 - alias 
 - key
 - keyType
 - keyword
 - unid
 - until

JSON (来自服务器)

代码语言:javascript
复制
{
    "documents": 1026,
    "configuration": 
    {
        ...
    },
    "data": 
    [
        {
            "alias": "",
            "key": "SALUTATION",
            "keyType": "S",
            "keyword": "Mr",
            "unid": ""
        },
        ...
        {
            "alias": "Automobile",
            "key": "ACCOUNT_MARKET_SEGMENT",
            "keyType": "A",
            "keyword": "Automobile",
            "unid": ""
        }
    ],
    "documentsFound": 770,
    "maxCount": -1,
    "since": "20120326200001",
    "until": "20120326211309"
}

现在,我想要映射来自“数据”加上键的所有数据,直到“实体”键()为止,但是找不到正确的解决方案。到目前为止,我为获取数据所做的映射看起来是这样的,而且运行良好,但当然忽略了“直到”-key。

代码语言:javascript
复制
RKManagedObjectMapping* keyMapping = [RKManagedObjectMapping mappingForClass:[Key class]];
keyMapping.rootKeyPath = @"data";
[keyMapping mapKeyPath:@"key" toAttribute:@"key"];
[keyMapping mapKeyPath:@"keyword" toAttribute:@"keywordEN"];
[keyMapping mapKeyPath:@"alias" toAttribute:@"alias"];
keyMapping.setDefaultValueForMissingAttributes = YES;

谢谢你的想法!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-26 21:39:49

您可能需要执行两个映射。第一个映射将包围整个对象,并与嵌套的“数据”路径有关系。

代码语言:javascript
复制
RKObjectMapping *keyMapping = [RKObjectMapping mappingForClass:[Key class]];
[keyMapping mapAttributes:@"alias", @"key", nil];
[keyMapping mapKeyPath:@"keyword" toAttribute:@"keywordEN"];

RKObjectMapping *outerMapping = [RKObjectMapping mappingForClass:[Container class]];
[outerMapping mapKeyPath:@"data" toRelationship:@"keys" withMapping:keyMapping];
[outerMapping mapAttributes:@"since", @"until", "maxCount", "documentsFound", nil];

这将为您提供一个带有元数据的新对象,然后在容器的键属性上提供一个键对象数组。与使用rootKeyPath不同,您可以在0.9.4开发分支上使用基于resourcePath的映射注册(即将发布)。

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

https://stackoverflow.com/questions/9880074

复制
相关文章

相似问题

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