使用RestKit映射网址

时间:2013-09-22 13:03:00

标签: ios objective-c restkit restkit-0.20

我正在尝试使用RestKit读取以下Json数据,并且我不确定我是否正确接近它。 我所做的是将用户登录到服务器并获得带有令牌和一些链接的响应。

example Json
{
    "links": {
        "map1": {
            "href": "https://www.website/mapToThis"
        },
        "map2": {
            "href": "https://www.website/mapToThat"
        }
    },
    "token": "12345678912345678"
}

我创建了一个要映射的类,并且获取令牌值没问题。

·H

@interface UserApiMap : NSObject

@property (strong, nonatomic) NSString* token;
@property  (nonatomic, retain) NSArray* links;

+ (RKObjectMapping *) mapping;

@end

.m - 制图

+ (RKObjectMapping *)mapping {

    RKObjectMapping *mapping = [RKObjectMapping mappingForClass:[self class]];
    [mapping addAttributeMappingsFromDictionary:@{@"token" : @"token"}];

    // How do I map the links??

    return mapping;
}

所以我的问题是我需要一个数组来保存链接,还是我需要第二个类来映射链接。如果我需要第二个类,我需要两个属性'map1'和'map2',这将是类型链接的第三类。

任何能让我走上正轨的输入都将受到极大的赞赏和帮助。

1 个答案:

答案 0 :(得分:1)

您最初的问题是您有NSArray* links - 即所需的链接数组,以及"links": { - 即提供的链接字典。 RestKit无法在这些数据结构之间自动转换。

如果您要将所需内容更改为NSDictionary* links并为@"links" : @"links"添加简单映射,则RestKit会将字典映射出来。然后,您可以像往常一样查询字典(包括直接访问和KVC - 它可以为您提供一系列链接)。这是最简单的选择。

如果你想特意存储一系列链接,那就更容易了:

  • 更改JSON
  • 映射到字典然后转换