2016-01-23 50 views
-1

我一直在閱讀所有我能找到的東西,但沒有一個解決方案似乎提供了我需要的答案。從json對象中提取數據字段

具體來說,我仔細閱讀了這Access/process (nested) objects, arrays or JSON,以及其他幾十個帖子。

這裏就是我試圖完成:

我有一個大的物體,稱爲allData - ,我得到了來自MongoDB的JSON對象,它包含從每個讀取所有數據的數組。

{pitch: -7.97, roll: -4.3, temp: 98, yaw: -129.83, time: "01/22/2016 17:28:47", …} 
{pitch: -8.04, roll: -4.41, temp: 97, yaw: -130.81, time: "01/22/2016 17:28:58", …} 

... 我想要做的是能與沿allData.pitch不起作用的線,但很明顯的東西提取所有間距讀數,因爲每個數據讀數中的一個元素allData陣列。所以我可以通過一個循環並做allData[x].pitch,但我希望更乾淨,更快的方式做到這一點 - 因爲我可能想要提取每種類型的數據。

不幸的是,在這一點上,我沒有能力簡單地從數據庫請求音高數據,所以我得到了整個回合。

最後一個問題是上述數組中的一個元素已經是數據對象。

+0

可能的http://stackoverflow.com/questions/10459917/traversing-through-json-string-to-inner-levels-using-recursive-的副本函數 - 如果是的話,隨時刪除您的問題 – mplungjan

+2

'var pitches = allData.map(function(o){return o.pitch;});' – Andreas

+0

對不起,在原始問題中不清楚... I我想回到他們記錄的音調和數據/時間,以便我可以相應地繪製它們。 – Davidgs

回答

2

您可以利用Array.prototype.map()這個

var pitches = allData.map(function(d) { 
        return { 
         "pitch": d.pitch, 
         "time": d.time 
        }; 
       }); 
0

如果您無法控制從服務器返回的數據(即僅檢索您想要的音高值),您將不得不循環以獲取全部數據。