如何在 RESTKit 中映射这个对象

How to map this object in RESTKit

我有 JSON 种

{
    "Client": {
        "FirstName": "String",
        "LastName": "String",
        "Email": "String",
        "Password": "String",
        "PhoneNumber": "String",
        "Token": "String"
    },
    "ErrorMessage": "String",
    "FriendlyMessage": "String"
}

我知道在映射时,如果我指定了一个关键路径,那么 RestKit 会匹配指定对象中的字段,在本例中 Client,我正在使用的代码如下

[responseMapping addAttributeMappingsFromDictionary:@{
    @"FirstName": @"FirstName",
    @"LastName": @"LastName",
    @"Email": @"Email",
    @"PhoneNumber": @"PhoneNumber",
    @"Token": @"Token",
    @"Password": @"Password",
    @"ErrorMessage": @"ErrorMessage"}];

RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:responseMapping
                                                                                        method:RKRequestMethodPOST
                                                                                   pathPattern:nil
                                                                                       keyPath:@"Client"
                                                                                   statusCodes:[NSIndexSet indexSetWithIndex:200]];

但我还有两个要映射的额外字段,它们不在客户端对象下。如何映射 ErrorMessageFriendlyMessage 字段?

通常您不想将它们映射到您的 client 对象中,您可能希望将它们映射到其他对象中。您通常会使用不同的对象和响应映射,其中响应映射使用不同的键路径。

如果出于某种原因你确实希望它们在同一个对象中,那么你可以考虑使用 @metadata / @parent 来访问父对象 (https://github.com/RestKit/RestKit/pull/1435)。