javascript将json对象推送到数组

javascript将json对象推送到数组,javascript,jquery,json,Javascript,Jquery,Json,我有以下资料: var cookie = $.cookie("Test_cookie"); var items = cookie ? eval("([" + cookie + "])") : []; var jsonObj = { packageId: "11", machineId: "1", operationType: "Download" }; items.push(jsonObj); $.cookie(cookieName, JSON.stringify(items), { expir

我有以下资料:

var cookie = $.cookie("Test_cookie");
var items = cookie ? eval("([" + cookie + "])") : [];
var jsonObj = { packageId: "11", machineId: "1", operationType: "Download" };
items.push(jsonObj);
$.cookie(cookieName, JSON.stringify(items), { expires: 1, path: '/' });
结果:

[{"packageId":"11","machineId":"1","operationType":"Download"}]
[[{"packageId":"11","machineId":"1","operationType":"Download"}],{"packageId":"11","machineId":"1","operationType":"Download"}]
这是正确的

但是,当我第二次运行它时,我想将新对象附加到项目中,但是json会出错(请注意额外的“[”):

结果:

[{"packageId":"11","machineId":"1","operationType":"Download"}]
[[{"packageId":"11","machineId":"1","operationType":"Download"}],{"packageId":"11","machineId":"1","operationType":"Download"}]
它应该是:

[{"packageId":"11","machineId":"1","operationType":"Download"},{"packageId":"11","machineId":"1","operationType":"Download"}]
你犯了什么错?

你的错误就要来了

var items = cookie ? eval("([" + cookie + "])") : [];
照办

var items = cookie ? eval(cookie) : [];
你的错误就在附近

var items = cookie ? eval("([" + cookie + "])") : [];
照办

var items = cookie ? eval(cookie) : [];


一些服务器会每月通过电子邮件提醒您页面中的可疑脚本。多亏了
eval()
Try
console.log(项目)
并将输出粘贴到此处。@roXon-他们也应该每月向您收取使用eval的费用!@adeneo:D:D:D哈哈哈现在我需要另一杯咖啡;)YMMDI很困惑…为什么您不使用
JSON.parse
?一些服务器会每月通过电子邮件提醒您页面中的可疑脚本。感谢
eval()
Try
console.log(项目)
并将输出粘贴到此处。@roXon-他们也应该每月向您收取使用eval的费用!@adeneo:D:D:D哈哈哈现在我需要另一杯咖啡;)YMMDI很困惑…您为什么不使用
JSON.parse
?成功了!谢谢!我会在9分钟内接受您的回答:)那样的话,eval就完全不需要了(而且很危险)特别是当与cookies结合使用时;)
JSON.parse
eval
@JoelDuret更受欢迎,因为您指出了这一点,我知道我错了,但无论如何……如果使用得当,eval并不是那么邪恶,但有其他方法“评估”字符串。总有一种方法。使用
eval()
是任何攻击者的梦想,也是糟糕脚本编写的标志Joel,我如何从json对象列表中弹出?就是这样!谢谢!我会在9分钟后接受你的回答:)如果这样,评估就完全不需要了(而且很危险)特别是当与cookies结合使用时;)
JSON.parse
eval
@JoelDuret更受欢迎,因为您指出了这一点,我知道我错了,但无论如何……如果使用得当,eval并不是那么邪恶,但有其他方法“评估”字符串。总有一种方法。使用
eval()
是任何攻击者的梦想,也是糟糕脚本的标志Joel,我如何从json对象列表中弹出?