gpt4 book ai didi

jquery - 直接将json字符串写入script标签中

转载 作者:行者123 更新时间:2023-12-01 05:05:01 25 4
gpt4 key购买 nike

是否可以直接将json字符串写入脚本标签?

我的解决方案:

myJsonObject = jQuery.parseJSON(' *json string* '); 

stuffObject = myJsonObject.stuffObject;
delete myJsonObject.stuffObject;

someObject = myJsonObject.someObject;
delete myJsonObject.someObject;

但是我觉得有点脏。是否有更好(更快)的解决方案?

谢谢!

最佳答案

所有 JSON 都是有效的 javascript(但并不总是相反)。

// These two lines are equivalent
var someObject = { a: 'a', b: 'b' };
var someObject = jQuery.parseJSON('{ "a": "a", "b": "b" }');

如果您从对外部资源的请求中获取 JSON 字符串,我认为您当前正在做的事情是最好的方法。如果您确实需要,您可以将 JSON 插入到新的 script 元素中,如下所示:

var $body = $(document.body);
$body.append("<script type='text/javascript'>var myJsonObject = " + jsonString + ";</script>");

我个人认为这看起来并不干净,但这种方法还存在一些其他问题。如果黑客能够将他/她自己的 javascript 放入您的网站返回的某些 JSON 响应中,那么有害的 javascript 就会在您的网站上运行,可能会对您的网站造成严重破坏并使您感到尴尬。 (出于同样的原因,您不应使用 eval(jsonString)。)

其次,JavaScript 将创建一个全局变量(至少在本例中),并且不会在与当前运行的函数相同的作用域中执行。

更不用说每次要解析某些 JSON 时创建新的 script 元素并将其插入到 DOM 中的不必要的费用。

你现在这样做的方式很好,因为1)如果你的JSON字符串中有有害的javascript,它将导致解析错误(JSON只保存数据,并且无法执行命令)2)它保留所有内容在当前范围内。

关于jquery - 直接将json字符串写入script标签中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6690543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com