ios - RestKit POST 发送 JSON 不包含映射路径/类名

标签 ios json post restkit

我正在使用 RestKit 将对象发布到服务器或获取它。 GET 与映射配合得很好。 但 POST 却没有。

以下是接收到的 JSON 的形式:

{"user":{"id":98,"notification":false,"id":98,"token_session":"506934689"}}

问题是发送的 JSON 的 post 对象具有以下形式:

{"id":98,"notification":false,"id":98,"token_session":"506934689"}

如您所见,缺少“user”类名! (我无法更改 server API 以使用两种 JSON 格式)

这是我的代码,如果有人可以帮助我!

    RKObjectMapping* mapping = [RKObjectMapping mappingForClass:[UserObject class]];
    [mapping mapKeyPath:@"id" toAttribute:@"id"];
    [mapping mapKeyPath:@"token_session" toAttribute:@"token_session"];
    [mapping mapKeyPath:@"notification" toAttribute:@"notification"];

    [[RKObjectManager sharedManager].mappingProvider setMapping:mapping forKeyPath:@"user"];
    [[RKObjectManager sharedManager].mappingProvider registerMapping:mapping withRootKeyPath:@"user"];
    [[RKObjectManager sharedManager].mappingProvider setSerializationMapping:[mapping inverseMapping] forClass:[UserObject class]];
//Route :
    [[RKObjectManager sharedManager].router routeClass:[UserObject class] toResourcePath:@"user"];

以及该对象的帖子:

RKObjectManager * manager = [RKObjectManager sharedManager];
[manager postObject:user usingBlock:^(RKObjectLoader* loader)
{
    loader.delegate = self;
}];

非常感谢。

编辑:

我试过这个:

RKObjectManager * manager = [RKObjectManager sharedManager];
    [manager postObject:[CurrentSession sharedInstance].user usingBlock:^(RKObjectLoader* loader)
    {
        loader.sourceObject = [NSDictionary dictionaryWithObject:[CurrentSession sharedInstance].user forKey:@"user"];
        loader.resourcePath = url;
        loader.delegate = self;
    }];

但是发送的 JSON 是空的:(

最佳答案

我发现我的错误了!

[[RKObjectManager sharedManager].mappingProvider setMapping:mapping forKeyPath:@"user"];
[[RKObjectManager sharedManager].mappingProvider registerMapping:mapping withRootKeyPath:@"user"];

RestKit 似乎不喜欢这两行。 我只保留了第一行,发送的 JSON 就变成了我所期望的

{"user":{"id":98,"notification":false,"id":98,"token_session":"506934689"}}

关于ios - RestKit POST 发送 JSON 不包含映射路径/类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12909533/

相关文章:

php - 使用 htaccess 重写/重定向,使单个 PHP 文件可以根据 GET/POST 变量显示数据

iphone - Apple 如何(或将如何)制作此动画?

ios - 在 SwiftUI 中呈现新 View

mysql - 使用 python 访问 json 值

ios - 从 JSON 数据添加到 UIButton 的 URL 链接

python - HTTP 错误 415 我做错了什么?

Ruby:如何将变量从服务器传递到索引?

iphone - iOS Native Facebook Share 无互联网回调

ios - 当我在其中放置一个 UI 元素时,为什么 UIScrollView 不滚动?

json - 从 Hyper 获取请求,解析 JSON,并将其转换为 Rust 中的结构