一个ajax请求返回一个标准的JSON数组,其中填充了用户的输入。输入已经过清理,使用eval()函数,我可以轻松创建javascript对象并更新页面。
这就是问题所在。无论我多么努力清理输入,我都不想使用eval()函数。我已经检查了谷歌的方法来使用“没有eval的AJAX中的JSON”,并且遇到了很多不同的方法…
我应该使用哪一个?有没有一种标准的,经过验证的安全方法来做到这一点?
json.org有一个不错的javascript库
简单用法:
JSON.parse('[{"some":"json"}]'); JSON.stringify([{some:'json'}]);
编辑 :正如评论中指出的那样,如果您查看eval的来源,则将使用eval(尽管它首先要进行清理)
为了完全避免它,请查看json_parse或json-sans- eval
json2.js不安全,json_parse.js缓慢,json-sans-eval.js未验证