1

给定以下数据:

var json = [ 
{ 'myKey': 'A', 'status': 0 },
{ 'myKey': 'B', 'status': 1 },
{ 'myKey': 'C', 'status': 1  },
{ 'myKey': 'D', 'status': 1 }
];

我想附加一个带有变量“Id”的新数组,例如:

var Id = "aNewLetterFunction";
json.push({'myKey':'+Id+','status':1}); //this doesn't work

我该怎么办,因为 +Id+ 本身不被视为变量?JSfiddle.net 赞赏。

编辑: 小提琴可用


我尝试了各种方法,例如:

json.push('{"myKey":"'+Id+'","status":1},');

或者

var ar1 = '{"myKey":"';
var Id = Id;
var ar2 = '","status":1},';
json.push(ar1+Id+ar2);
4

3 回答 3

3

json可能不是一个好的变量名,因为您有一个对象数组,而 JSON 根据定义是一个字符串。

撇开那条注释不谈,您只需构造一个对象文字并推送它:

var Id = "aNewLetterFunction";
json.push({
    myKey: Id,
    status: 1 
});
于 2013-02-12T19:49:32.763 回答
2

创建对象,不要创建 JSON 字符串:

json.push({
    myKey:Id,
    status:'1'
});

您不想向 JSON 添加另一个值,而是向可以解析为 JSON 字符串但不是字符串的数组添加另一个值。

现场演示

于 2013-02-12T19:48:20.950 回答
2

只需使用

json.push({'myKey':Id, 'status':1});

您不想要带有变量名称的字符串,而是使用变量?

于 2013-02-12T19:48:55.640 回答