2013-09-22 65 views
1

我想讀取使用RestKit的以下Json數據,我不確定如果我正確接近它。 我所做的是將用戶登錄到服務器,並通過令牌和一些鏈接獲得響應。使用RestKit來映射網址

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

您最初的問題是您有NSArray* links--即需要的鏈接數組,以及"links": { - 即提供的鏈接字典。 RestKit無法在這些數據結構之間自動轉換。

如果您要將所需的內容更改爲NSDictionary* links併爲@"links" : @"links"添加簡單映射,則RestKit會將字典映射出去。然後,您可以像平常一樣查詢字典(包括直接訪問和KVC - 這可以爲您提供一系列鏈接)。這是最簡單的選擇。

如果你想存儲的鏈接數組特別是要容易得多:

  • 更改JSON
  • 地圖字典,然後再轉換