我正在尝试使用 RestKit
将多个对象作为数组发送到服务器。不幸的是,我不能这样做。
遵循我非常简单的对象以及 RestKit 的映射:
@interface MyExampleObject : NSObject
@property NSString *key;
@property NSString *value;
@end
@interface MyArray : NSObject
@property NSArray *array;
@end
RKObjectMapping *mappingObject = [RKObjectMapping mappingForClass:[MyExampleObject class]];
[mappingObject addAttributeMappingsFromDictionary{
@"key" : @"key",
@"value" : @"value"
}];
RKObjectMapping *mappingArray = [RKObjectMapping mappingForClass:[MyArray class]];
[mappingArray addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath"dummy" toKeyPath"array" mappingObject]];
如果我这样做,我会得到以下结果:
{
"dummy" : [
{
"key" : "MyKey1",
"value" : "MyValue1"
},
{
"key" : "MyKey2",
"value" : "MyValue2"
}
]
}
但我只想要没有“键”的数组。像这样:
[
{
"key" : "MyKey1",
"value" : "MyValue1"
},
{
"key" : "MyKey2",
"value" : "MyValue2"
}
]
将 relationshipMappingFromKeyPath
更改为 nil
对我来说似乎很明显。但这不起作用(得到 setObjectForKey: key cannot be nil
错误)。
如何将多个 MyExampleObjects
作为 JSON 数组发送到我的服务器?
作为 Wain建议我删除了我的“顶部映射”。在最终映射之后:
RKObjectMapping *mappingObject = [RKObjectMapping mappingForClass:[MyExampleObject class]];
[mappingObject addAttributeMappingsFromDictionary{
@"key" : @"key",
@"value" : @"value"
}];
当我将这些东西发布到我的服务器时,我只是做这样的事情:
NSArray *array = [NSArray arrayWithObjects:myExampleObject1, myExampleObject2, nil];
[[RKObjectManager sharedManager] postObject:array path"/myPath/" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
...
}
只需去掉 MyArray
对象和关联的映射,直接将 MyExampleObject
的 NSArray
传递给 post 方法即可。 RestKit 会理解它是一个对象数组来映射并做正确的事情。
关于ios - 使用 RestKit 发布多个对象(作为 JSON 数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26467385/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |