我想将此对象推送到JSON数组
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那样的实际键,如代码中所示
感谢任何帮助。
答案 0 :(得分:10)
文字符号不允许键的表达式。您需要先创建对象,然后使用括号表示法:
var tmp = {};
tmp[key] = obj[key];
str.xA.push(tmp);
答案 1 :(得分:3)
您需要使用[]
表示法,否则密钥名称将始终为key
,而不是密钥的值。
str.xA.push({
key : obj[key]
})
到
var tmp= {};
tmp[key] = obj[key]
str.xA.push(tmp)