2011-09-22 36 views
-1

是否有可能將json對象轉換爲數組或其他東西?如何保存數組中的json對象?

我喜歡有一個功能,這是從一個sqldatabase通過JSON檢索數據:

jQuery.getJSON( 「file.php」,功能(數據){ ... });

這個數據應該存儲在一個數組,這樣我可以在網站上使用它的幾個位置

+0

爲什麼你要一個數組(只有位置訪問)時,你可以有一個JavaScript對象(具有命名訪問)? –

+0

http://stackoverflow.com/questions/5618548/convert-json-array-to-javascript-array –

+0

你只是想將JSON對象包裝在數組中嗎?我們需要更多細節,給我們一個幫助的例子。 – adamjmarkham

回答

0

如果您的file.php腳本爲其響應返回適當的數據類型,那麼data參數將已經包含解析的JSON(例如,以實時JavaScript變量形式)。

如果您不喜歡數據所在的表單,並且想要將其轉換爲其他數組,那麼您必須向我們展示它的格式,以便我們可以建議代碼將其轉換爲一些其他形式。

如果你只是想將數據存儲在一個變量,所以你可以在其他地方使用它,那麼你可以做的是通過將其存儲在一個全局變量:

var fileData; 
jQuery.getJSON("file.php", function(data) { 
    fileData = data; 
    // call any functions here that might want to process this data as soon as it's ready 
}); 

的數據現在是在一個全局變量名爲fileData,您可以在頁面的任何位置使用該文件。請記住,getJSON調用是異步的,因此可能需要一些時間才能完成,並且只有在調用getJSON回調之前,數據纔會在變量中可用。

如果你調用此多次,想要收集每個響應,你可以將其收集到一個這樣的數組:

var fileData = []; // declare empty array 
jQuery.getJSON("file.php", function(data) { 
    fileData.push(data); // add onto the end of the array 
    // call any functions here that might want to process this data as soon as it's ready 
}); 
+0

非常感謝! –

0

如果你只是想包裝JSON對象現有陣列中,然後使用的的push()方法有問題的數組,傳遞對象作爲參數。