Restkit的RequestMapping
官网上面只介绍了
{
a : "a",
b : "b"
}
的写法
RKObjectMapping *requestMapping = [RKObjectMapping requestMapping];
[requestMapping addAttributeMappingsFromDictionary:@{@"entityId" : @"id"}];
但是没有介绍多层嵌套的JSON用什么方式,类似于
{
entity: {
id: "xxxxxxxxx",
model : {
a : "a",
b : "b"
}
}
}
创建的两个模型文件:
@interface Entity : NSObject
@property (strong, nonatomic) NSString *entityId;
@property (strong, nonatomic) NSObject *model;
@end
@interface Model : NSObject
@property (strong, nonatomic) NSString *a;
@property (strong, nonatomic) NSString *b;
@end
我想当然按照ResponseMapping的写法,以下是我的Mapping代码
RKObjectManager *objectManager = [RKObjectManager sharedManager];
RKObjectMapping *requestMapping = [RKObjectMapping requestMapping];
[requestMapping addAttributeMappingsFromDictionary:@{@"entityId" : @"id"}];
RKObjectMapping *modelMapping = [RKObjectMapping requestMapping];
[modelMapping addAttributeMappingsFromDictionary:@{@"a" : @"b"}];
RKRelationshipMapping *modelToEntityMapping = [RKRelationshipMapping relationshipMappingFromKeyPath:@"model" toKeyPath:@"model" withMapping:modelMapping];
[requestMapping addPropertyMapping:modelToEntityMapping];
RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:requestMapping objectClass:[Entity class] rootKeyPath:nil method:RKRequestMethodAny];
[objectManager addRequestDescriptor:requestDescriptor];
我这么定义Post的Object
Entity *entity = [Entity new];
entity.entityId = @"/example/entityId";
Model *exampleModel = [ExampleModel new];
exampleModel.a = @"a";
exampleModel.b = @"b";
entity.model = exampleModel;
可是在服务器上面输出的是这样的:
{ id: '/example/entityId', 'model[a]': 'a', 'model[b]': 'b' }
请问RestKit的ResquestMapping的Relationship应该怎么定义?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
reskit 复杂又麻烦,还需要自己定义一堆关系。。真的非常难用,劝早弃
我建议用 AFNetworking + JosnModel。。
如果你要存储的话 AFNetworking + Realm 也可以。。
都不用自己去定义关系。。写完属性就自动适配。
你看我这样多省事儿。。restkit 真的可以弃了。。