RestKit:发送特定的 JSON,请帮助,我已经尝试了我能想到的一切

Posted

技术标签:

【中文标题】RestKit:发送特定的 JSON,请帮助,我已经尝试了我能想到的一切【英文标题】:RestKit: Sending particular JSON, Please help, i've tried everything I can think of 【发布时间】:2012-07-23 17:45:42 【问题描述】:

所有...

我整个周末都在这个问题上,但问题仍然存在。我不知道还能做什么,任何帮助将不胜感激。我正在尝试像这样发送 JSON:

  
    "proof": 
    
      "name":"fluff",
      "media_type":"Photo",
      "description":"This is a description"
    ,
    "auth_token":"mphxNcEGJMJyU7iPmaLw"
 

我不断收到来自 RestKit 的以下异常:

2012-07-23 10:29:17.001 restkittest[8389:707] * 由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[valueForUndefinedKey:]:此类不是键值编码兼容密钥 auth_token。'

我怀疑这是因为 auth_token 不是我要传递的对象(证明)的一部分,但我不知道如何将 auth_token 与证明一起传递,因为 postObject 只需要一个对象来发布。

...这是我尝试这样做的代码:

@implementation proof
@synthesize name;
@synthesize description;
@synthesize media_type;
@synthesize duration;
@synthesize frequency_id;
@end

@implementation auth_token
@synthesize auth_token;
@end

- (BOOL)createProof:(proof *)proof

    BOOL ret = NO;

    [self.objectManager postObject:proof usingBlock:^(RKObjectLoader *loader)
     
         loader.delegate = self;

         RKObjectMapping *proofMappingAccept = [RKObjectMapping mappingForClass:[proof class]];
         [proofMappingAccept mapKeyPath:@"name" toAttribute:@"name"];
         [proofMappingAccept mapKeyPath:@"description" toAttribute:@"description"];
         [proofMappingAccept mapKeyPath:@"media_type" toAttribute:@"media_type"];
         [proofMappingAccept mapKeyPath:@"duration" toAttribute:@"duration"];

         RKObjectMapping *mapping = [RKObjectMapping mappingForClass:[NSMutableDictionary class]];

         [mapping mapKeyPath:@"auth_token" toAttribute:@"auth_token"];
         [mapping mapKeyPath:@"proof" toRelationship:@"proof" withMapping:proofMappingAccept];

         loader.serializationMapping = [mapping inverseMapping];

         loader.objectMapping = mapping;
     ];

    return ret;

【问题讨论】:

【参考方案1】:

创建一个 NSDictionary,将您的证明对象作为键“proof”的值,将 auth_token 作为键“auth_token”的对象,并将 loader.sourceObject 设置为此字典。

【讨论】:

以上是关于RestKit:发送特定的 JSON,请帮助,我已经尝试了我能想到的一切的主要内容,如果未能解决你的问题,请参考以下文章

使用 RestKit 发送 POST 不会返回 JSON 内容

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

restkit JSON ios - putObject - 发送类型信息

Restkit:multipartFormRequestWithObject 不是 json

将 UIImage 发送到仅接受 JSON 的 Web 服务(通过 RestKit)

使用 RestKit 处理原始数据的响应