2015-11-25 51 views
0

我正在使用Amazon Web服務及其數據庫dynamodb。該數據庫返回的JSON形式的查詢像這樣:將JSON數組的部分與另一個JSON數組結合起來

{ Items: 
    [ { user: 'a' }, 
    { user: 'an' }, 
    { user: 'm' } ], 
    Count: 3, 
    ScannedCount: 3 } 

我只在「用戶」屬性的興趣,有沒有用計數和掃描計數。有時我會做多個請求,並在我的應用程序服務器(nodejs)中接收multipel json響應。我想將所有這些響應合併到一個json中。基本上將所有用戶組合成一個json數組併發送回去。所以somethimes我可以偷請求像這樣:

{ Items: 
    [ { from_username: 'a' }, 
    { from_username: 'an' }, 
    { from_username: 'm' } ], 
    Count: 3, 
    ScannedCount: 3 } 


{ Items: 
    [ { from_username: 'a' } ], 
    Count: 1, 
    ScannedCount: 1 } 


{ Items: 
    [ { from_username: 'v' }, 
    { from_username: 'a' }], 
    Count: 2, 
    ScannedCount: 2 } 

,並想將其合併成是這樣的:

{Items: 
    [ { from_username: 'a' }, 
    { from_username: 'an' }, 
    { from_username: 'm' }, 
    { from_username: 'a' }, 
    { from_username: 'v' }, 
    { from_username: 'a' } ] 

我想是這樣的:

var json = [json1, json2, json3] 

但這隻能連接並不會刪除不需要的計數字段。 JSON的

+0

但是,這....? – prasun

+0

@prasun請參閱更新的問題。 – user2924127

回答

2

而不是在陣列複製整個JSON的,只添加屬性的商品到數組

var json = [json1.Items, json2.Items, json3.Items] 

如果您想保留項目的關鍵,以及使用方法:

var json = [{Items: json1.Items}, {Items: json2.Items}, {Items:json3.Items}] 

,如果你想在一個陣列下的所有項目相反,您可以使用:

var json = {Items: []}; 
json.Items = json.Items.concat(json1.Items); 
json.Items = json.Items.concat(json2.Items); 
json.Items = json.Items.concat(json3.Items); 
+0

這非常接近,但它在1內創建了3個數組(例如[[json data 1],[json data 2],[json data 3])。我寧願將所有鍵都放在一個沒有任何子數組的數組中(所有數組中的所有數據都具有相同的鍵'用戶')。 – user2924127

+0

剛剛更新:) – prasun

+0

完美,正是我所需要的。謝謝! – user2924127

相關問題