2012-12-12 22 views
1

如何爲它提供的索引值的JSON賦值給JSON分配..如何通過給指數也

請看下面的代碼,

var jsonVariable = []; 
jsonVariable[10] = {1:10}; 
alert(jsonVariable.toSource()); 

上面的代碼輸出是, [,,,,,,,,,{1:10}] 輸出我期待,我需要的是[10:{} 1:10] 如何代碼,以使輸出如我所料......請幫我簡單..

+0

爲什麼你會期望在索引0的元素,當你做'jsonVariable [10] =改變.. 。?? –

+0

我需要爲其正確的索引顯示一些錯誤消息,例如:10 –

+0

試試這個:'jsonVariable ['10'] = {1:10};';-)或者更好:'jsonVariable = ['10':{ 1:10}];' – shadyyx

回答

3

您使用的索引運營商([]),其實例化一個new array,並在索引10中設置的元件{1: 10}。實際上,你想用花括號運算符({})的實例化一個new object和廣告屬性10: {1:10}這樣的:

var jsonVariable = {}; 
jsonVariable[10] = {1:10}; 
alert(jsonVariable.toSource()); 

設置成員的array,你不能簡單地跳過一些指數(以10開頭)。直到你的所有未被指示的指數將被強制創建。

+0

謝謝..你的ri8 .. :) –

2

如果指定的數組索引尚不存在,如[10],則會創建所有以前未填充的索引。只是.push()它。

var jsonVariable = []; 
// A numeric property should be a string "1", though the browser will probably forgive you 
// Just push the new object onto the array 
jsonVariable.push({"1":10}); 
alert(JSON.stringify(jsonVariable)); 
// [{1:10}] exactly as you describe 

如果你需要這個特定對象{1:10}出席jsonVariable[10],使它成爲一個對象{},而不是一個數組。

var jsonVariable = {}; 
jsonVariable["10"] = {"1": 10}; 
alert(JSON.stringify(jsonVariable)); 
// {"10":{"1":10}} 
+0

如果我使用push將其添加到第零個索引號爲{10:{1:10}} –

1

我猜你需要的是:

var jsonVariable = []; 
for(var i=0;i<10;i++){ 
    var temp = {}; 
    temp[i] = {'Property' : "Data"} 
    jsonVariable.push(temp); 
} 
console.log(JSON.stringify(jsonVariable)); 
0

試試這個:

var jsonVariable = []; 
jsonVariable[10] = {1:10}; 
function isNotEmpty(element, index, array) { 
    return array[index]; 
}; 
jsonVariable = jsonVariable.filter(isNotEmpty); 

alert(jsonVariable.toSource());