2014-06-26 39 views
0

我有6鍵值對javascript對象:的JavaScript - 轉換對象密鑰值對JSON

My_Type_1:"Vegetable" 
My_Type_2:"Fruit" 
My_Type_3:"Dessert" 

My_Value_1: "Carrot" 
My_Value_2: "Apple" 
My_Value_3: "Cake" 

我希望構造JSON出上述目的的,使得它生成以下內容:

[{"Vegetable":"Carrot"},{"Fruit":"Apple"},{"Dessert":"Cake"}] 

編輯:

for (j=0;j<3;j++) 
{ 
    var tvArray = new Array(); 
    var sType = 'My_Type_'+j+1; 
    var sValue = 'My_Value_'+j+1; 
    tvArray['Type'] = JSObject[sType]; 
    tvArray['Value'] = JSObject[sValue]; 
} 

的JSO n.stringify不會產生如上所列的所需輸出。

我該怎麼做?

謝謝

+0

*「但它不起作用」*請告訴我們更多。 –

+0

對不起..我想我有邏輯搞砸了..所以我刪除它.. – Jake

+1

這個問題已經在這裏找到答案: http://stackoverflow.com/questions/558518/how-can-i -serialise-an-object-to-json-in-javascript –

回答

1

您需要在括號內加上括號j + 1。你現在擁有的東西給你'My_Type_01'等等。

var obj = { 
    My_Type_1:"Vegetable", 
    My_Type_2:"Fruit", 
    My_Type_3:"Dessert", 

    My_Value_1: "Carrot", 
    My_Value_2: "Apple", 
    My_Value_3: "Cake" 
}; 

var pairs = [], pair; 
for(var j = 0; j < 3; j++) { 
    pair = {}; 
    pairs.push(pair); 
    pair[obj['My_Type_' + (j+1)]] = obj['My_Value_' + (j+1)]; 
} 


console.log(JSON.stringify(pairs)); 
+0

謝謝!這工作。 – Jake