2012-04-24 36 views
0

我有以下JSON結構i。從一個RestService得到:RestKit:單個對象映射到現有的陣列

{ 
    "customer": { 
     "id": "123456", 
     [more attributes ....] 
     "items": [ 
      { 
       "id": "1234", 
      }, 
      { 
       "id": "2345", 
      } 
      [more items...] 
     ] 
    } 
} 

我使用RestKit成功映射到核心數據。從另一個RestService(我不能改變),然後我得到更多的細節項目數組中的一個單一的項目。 JSON的答案看起來像

{ 
    "customer": { 
     "id: "123456", 
     "item": { 
      "id": "1234", 
      "name": "foo", 
      [other attributes...] 
     } 
    } 
} 

現在的問題是:我如何能在第二個答案映射,從而使單個項目添加到項目陣列(或更新的,如果它已經在那裏)?

感謝您的任何想法!

回答

0

如果您已經知道如何將JSON映射到核心數據,那麼剩下的只是獲取想要添加項目屬性的對象(使用id或其他),然後設置它,重寫舊的或者添加新字段。這只是一般方法

+0

感謝您的回答。問題是第二個答案也被認爲是一個客戶(由於封閉的客戶標籤)。因此它將答案映射到客戶。由於客戶沒有「item」標籤的映射(只有「items」),它會跳過該標籤。我想告訴映射器,如果出現「item」標籤,它應該將它解析到「items」數組中。當然,我可以手動獲取它,但如果可能的話,我正在尋找更具可擴展性的解決方案... – Retolinho 2012-04-24 09:59:59

0

如果您設置了RKManagedObjectMapping對象的相應primaryKeyAttribute,您應該能夠按照您的需要執行映射。 它實際上是更容易幫助你,如果你想發佈您的某些映射代碼,但是這是我的意思它是

  1. 爲您的客戶對象創建映射,定義所有可能的屬性和聲明mappingObject.primaryKeyAttribute = @"id"
  2. 執行與第一請求映射(或者你把它的第一個答案)
  3. 第一映射步驟完成之後執行第二請求

這應該最初創建客戶對象喲你想要然後更新它們。