2014-06-26 25 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