我对RKObjectMapping有点新意,我在解决这个问题时遇到了一些麻烦。
我有一个类,它有一个名为myObjects的对象数组。这种类型的对象已经在其类中具有对象映射。我想映射到以下类型的JSON对象:
{
"myObjects": [...]
}
其中JSON数组包含由myObjects确定的JSON对象以及我已经给出的对象映射。
我如何进行对象映射来执行此操作?
答案 0 :(得分:0)
对不起,我误解了你的问题。如果我这样做,我会使用JSONKit。这允许您从JSON对象创建NSDictionarys
和NSArrays
,并从它们序列化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"];
在这里,您可以对其他自定义对象中包含的自定义对象进行制作,也可以直接映射属性,而无需指定与其一起使用的映射。
答案 1 :(得分: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。