2013-09-30 79 views
7

我想給該對象推到JSON數組將數據推送到JSON對象中的JavaScript

var obj = {'x':21,'y':32,'z':43}; 

由於我的JSON鍵:值來動態地,我不能使用密鑰的訪問,所以我使用的循環方法。

var str = {xA : []}; //declared a JSON array 

for (var key in obj) { 

    alert(' name=' + key + ' value=' + obj[key]); 

    str.xA.push({ 
     key : obj[key] 
    }) 
} 

當我提醒我得到鍵和值正常,但是當我在它推到數組我的鑰匙總是來爲「關鍵」的值,而不是像X,Y,Z的實際密鑰如代碼中所示。

任何幫助表示讚賞。

+3

這是一個JavaScript對象字面,而不是JSON。 – ThiefMaster

+1

請不要使用「JSON」這個詞,這裏根本就沒有JSON。 –

回答

10

的文字符號不允許鍵表達式。您需要先創建對象,然後用括號標記改爲:

var tmp = {}; 
tmp[key] = obj[key]; 
str.xA.push(tmp); 
3

您需要使用[]符號,否則永遠是關鍵的名稱將是key,而不是關鍵字的值。

str.xA.push({ 
    key : obj[key] 
}) 

var tmp= {}; 
    tmp[key] = obj[key] 
    str.xA.push(tmp) 
相關問題