2013-11-26 27 views
0

我有兩個類映射JSON響應地圖RestKit:<code>Item</code>和<code>FrequentProps</code></p> <p>項具有以下屬性:嵌套陣列到對象

frequentProps, identifier, name 

FrequentProps具有屬性

propOne 
propTwo 
propThree 
propFour 

您可以看到,frequentPropsItem中的類型爲FrequentProps

考慮以下JSON響應:

[ 
    { 
     "frequentProps": [ 
      { 
       "propOne": 174 
      }, 
      { 
       "propTwo": 9.726 
      }, 
      { 
       "propThree": 2.021 
      }, 
      { 
       "propFour": 25.07 
      } 
     ], 
     "identifier": "4223", 
     "name": "TheName" 
    } 
] 

的JSON的外部分應該被映射到Item類的一個對象,嵌套陣列應該被映射到frequentProps,作爲一個屬性物體。不幸的是,frequentProps沒有被映射到Item的同名物業,而是映射到NSArray(如果我將該物業的類型定義爲NSArray,否則該物業仍然爲零)。

這裏的配置:

RKObjectMapping *itemMapping = [RKObjectMapping mappingForClass:[Item class]]; 
[item addAttributeMappingsFromDictionary:[Item attributesMapping]]; 
RKObjectMapping *frequentPropsMapping = [RKObjectMapping mappingForClass:[FrequentProps class]];  
[frequentPropsMapping addAttributeMappingsFromDictionary:[FrequentProps attributesMapping]]; 
[itemMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"frequentProps" 
                         toKeyPath:@"frequentProps" 
                        withMapping:frequentProps]]; 

// adding the response descriptor, etc... 

我怎麼能直接映射到frequentPropsFrequentProps類型的對象,這仍然Item的屬性?

回答

1

你不能這樣做,因爲映射中沒有辦法指定你將數組索引到指定的鍵中。我期望這永遠不會被支持。

不理想,但是:你可以用自定義setter方法來添加數組屬性。調用setter時,通過創建FrequentProps的實例並設置數組內容的屬性來變更數據。

+0

我很害怕這會發生。感謝您的建議,如果RestKit中沒有指定的用例,我有這樣的想法。 – ff10

相關問題