JavaScript - 将对象键值对转换为JSON

时间:2014-06-26 06:02:20

标签: javascript

我有一个包含6个键值对的javascript对象:

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];
}

json.stringify不会产生上面列出的所需输出。

我该怎么做?

由于

1 个答案:

答案 0 :(得分: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));