1

我对 RKObjectMapping 有点陌生,我在弄清楚这一点时遇到了一些麻烦。

我有一个类,它有一个名为 myObjects 的对象数组。这种类型的对象在其类中已经有一个对象映射。我想映射到以下类型的 JSON 对象:

{
  "myObjects": [...]
}

其中 JSON 数组包含由 myObjects 确定的 JSON 对象和我已经给出的对象映射。

我将如何进行对象映射来做到这一点?

4

2 回答 2

0

很抱歉我误解了你的问题。如果我要这样做,我会使用JSONKit。这允许您从 JSON 对象创建NSDictionarysNSArrays从它们中序列化 JSON 对象。

如果您在项目中包含 .h/.m(这也自动包含在供应商 > JSONKit 下的 RestKit 中),您可以导入JSONKit.h然后调用:

[myArray JSONString];

这将为您返回序列化 JSON 对象的 NSString。您可能还想看看其他一些更彻底的方法。


原始的,不正确的答案:

我认为这就是你要找的:

RKObjectMapping *visualsMapping = [RKObjectMapping mappingForClass:[Visuals class]];
[carMapping mapKeyPath:@"Color" toRelationship:@"color"];
[carMapping mapKeyPath:@"Damage" toRelationship:@"damage"];
...

carMapping = [RKObjectMapping mappingForClass:[Car class]];
[carMapping mapKeyPath:@"Model" toRelationship:@"model"];
[carMapping mapKeyPath:@"Visuals" toRelationship:@"visuals" withMapping:visualsMapping];
...
[carMapping setRootKeyPath:@"myObjects"];

在这里,您可以针对包含在其他自定义对象中的自定义对象进行制作,也可以直接映射属性,而无需指定与之配套的映射。

于 2013-01-30T20:38:54.917 回答
0

经过很多烦人的摆弄,我想通了:

如果我想在 JSON 对象中嵌套一个命名的 JSON 数组,我必须定义一个从数组到 JSON 数组的对象映射,然后为整个 JSON 对象定义一个映射,其中包含空键路径和使用第一个对象的关系映射。

例如:

RKObjectMapping* visualsMapping = [RKObjectMapping serializationMapping]'
[visualsMapping mapKeyPath:@"visuals" toRelationship:@"Visuals" withMapping:[Visual serializaitonMapping];

RKobjectMapping* serializaionMapping = [RkObjectMapping serializationMapping];
[serializaionMapping mapKeyPath:@"" toRelationship:@"" visualsMapping];

那么我想要的对象映射就是serializationMapping。

于 2013-01-31T17:28:51.837 回答