我有一个包含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不会产生上面列出的所需输出。
我该怎么做?
由于
答案 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));