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()
Tryconsole.log(项目)
并将输出粘贴到此处。@roXon-他们也应该每月向您收取使用eval的费用!@adeneo:D:D:D哈哈哈现在我需要另一杯咖啡;)YMMDI很困惑…为什么您不使用JSON.parse
?一些服务器会每月通过电子邮件提醒您页面中的可疑脚本。感谢eval()
Tryconsole.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对象列表中弹出?