2012-07-14 65 views
1

所以我有以下格式的JSON:JSON追加數組中的iOS 5

{ 
    "data": { 
     "last_updated": 1342277036, 
     "stream": [ 
      { 
       "action": { 
       }, 
       "to": [ 
       ], 
       "from": [ 
       ], 
       "timestamp": 1342276421 
      }, 
      { 
       "action": { 
       }, 
       "to": [ 
       ], 
       "from": [ 
       ], 
       "timestamp": 1342276421 
      }, 
      { 
       "action": { 
       }, 
       "to": [ 
       ], 
       "from": [ 
       ], 
       "timestamp": 1342276421 
      }, 

我再作請求,並得到同樣的反應。我想要把這兩個JSON結合起來,基本上是將新的「流」數組添加到舊數組中。這是我到目前爲止已經這樣做了慷慨失敗:

NSMutableArray *streamArray = 
    [NSMutableArray arrayWithArray:[[streamDiskData valueForKey:@"data"] valueForKey:@"stream"]]; 
NSArray *newFeeds = [[jsonData valueForKey:@"data"] valueForKey:@"stream"]; 
//append the old JSON array with the new feeds stream 
[streamArray insertObjects:newFeeds atIndexes:indexSet]; 

所以streamDiskData這裏是老JSON和jsonData是新的JSON。我做錯了什麼,我該怎麼做?

+0

爲什麼這是downvoted? – xonegirlz 2012-07-14 15:31:12

+1

我沒有讓你失望,但如果你想盡可能地提出你的問題(以幫助我們給你最好的答案),你可以做幾件事情:(1)發佈的objective-c和json是(2)在你的objc代碼中,'indexSet'是一個重要的變量,但是你不會告訴我們這是什麼。所以,這使得很難判斷錯誤在哪裏。 (3)你也沒有說明它是如何失敗的。只是沒有追加?失事?沒有在索引處交錯數據?這是我最好的猜測,爲什麼downvote。 – Nate 2012-07-14 21:43:19

回答

0

我看不到你的indexSet實際上是,但請嘗試使用更多的東西是這樣的:

NSMutableArray *streamArray = 
    [NSMutableArray arrayWithArray:[[streamDiskData valueForKey:@"data"] valueForKey:@"stream"]]; 
NSArray *newFeeds = [[jsonData valueForKey:@"data"] valueForKey:@"stream"]; 
//append the old JSON array with the new feeds stream 
[streamArray addObjectsFromArray: newFeeds]; 

addObjectsFromArray是你用什麼來追加第二陣列。 insertObjects:atIndexes:可用於在其他位置插入newArray數據,而不僅僅是結尾streamArray。但是,你的問題說追加,所以我建議使用addObjectsFromArray來代替。