2012-09-29 473 views
3

在我的節點REST應用程序中,我有一個函數可以查詢數據庫中的多個記錄並返回一個對象數組。
由於我希望它返回一個JSON對象,我需要一種方法來將對象數組轉換爲一個包含所有記錄的對象。
不幸的是,我無法在網上找到關於做這樣的事情的例子。
任何幫助,將不勝感激。將對象數組轉換爲對象

+4

你大概可以沒有找到一個例子,因爲沒有理由去做。 –

+0

認爲「人」是一個「JSON對象」,並認爲「數組」是這些人的組合。只需迭代(例如:for循環)這些數組,然後對每個人做任何你想做的事情。 – InspiredJW

回答

4

你爲什麼要這麼做?它完全罰款JSON字符串化項目的數組,你會得到如下所示的結構

"[{},{},{},...]" 

這可能是連一個優勢,因爲你一直保證項目的順序

+0

這不會讓我的客戶端應用程序更難分析結果嗎? –

+0

所有JSON解析器都可以(希望)解析並返回數組,因爲頂級數組是有效的JSON。 – jrajav

+0

感謝您的幫助。 –

1

查看underscore.js的object function

+0

從技術上講,這是一個* something *的解決方案,但在這種情況下,它是一個有用答案的反義詞。 – jrajav

+0

我認爲這個答案是否有用的決定最好由問題的原作者作出。他問如何將數組轉換爲對象,所以我告訴他如何。他沒有問這是否是如何處理他的情況的最佳方式。因此不需要得到粗魯的恕我直言。 –

+3

對不起,如果我覺得不敬,那不是我的意圖。我認爲這是一個不好的答案,因爲雖然OP確實要求如何將數組轉換爲對象,但這並不是他們實際嘗試完成的最佳解決方案,反正這樣做最可能會引入其他問題並且混亂。最好嘗試回答總體目標,而不是字面問題。 – jrajav

0

讓我們假設你有對象與形式的數組:

log { 
    name: "foo", 
    log: "bar" 
} 

你可以這樣做:

var logs,//Array of logs 
    logObj = {} 

for(i=0, i<logs.Length i++) { 
    logObj[logs[i].Name] = logs[i].log; 
} 

循環logObj後應該是:

logObj { 
    foo: bar, 
    nextName: cool comment, 
    etc. 
}