1

我正在尝试使用 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”,这将是第三类链接类型。

任何让我走上正轨的意见将不胜感激,并提供很大帮助。

4

1 回答 1

1

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

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

如果您想专门存储一组链接,则更容易:

  • 更改 JSON
  • 映射到字典然后转换
于 2013-09-22T13:12:18.817 回答