使用 RestKit 0.10.1,我提供了类似于这种 json 格式的对象:
{"objects": [
{"owner": 1,
"_id": 823,
"data": {
"diam": 5.0,
"plant_date": "10/02/2008"}
},
... ] }
在客户端,我不需要子对象或关系,所以我将对象的属性展平:
[myMapping mapKeyPathsToAttibutes:
@"_id", @"id",
@"owner", @"owner",
@"data.diam", @"diam", //here is what I mean by flatten; notice data.diam -> diam
@"data.plant_date", @"plant_date", nil];
我读取这些数据没有问题,但是当我想序列化它时,只有顶级属性被发送到服务器。当我序列化时,这是服务器得到的:
{"_id":0,"owner":1}
请注意,我已经正确(我认为)使用上述的 inverseMapping 注册了序列化映射:
[objectManager.mappingProvider setSerializationMapping:[myMapping inverseMapping] forClass:[MyClass class]];
当我像这样发布对象时:
myObject = [MyClass object];
myObject.diam = [NSNumber numberWithInt:5];
myObject.plant_date = myDate;
[[RKObjectManager sharedManager] postObject:myObject delegate:self];
我想要一个完整的、不扁平的结构:
{"_id":0,"owner":1, "data": {"diam": 5.0, "plant_date": "10/02/2008"} }
如何使用 RestKit 实现将注册对象映射到服务器的键路径(即“data.diam”)?