如何解决如何将js变量转换为js对象?
我正在将此数据解析为html模板:
[
{
"name": "1","children": [
{"name": "2"},{"name": "3"},{"name": "4"},{"name": "5"},{"name": "6"},{"name": "7"}
]
}
]
为了创建图形但要创建图形,此数据应返回类型object(警报返回[object Object])。 当我将完全相同的数据复制粘贴到js中的var中以创建图形时,它可以正常运行,但是将其分配为:
var data = '{{ node_data }}';
var remove = data.replace(/"/g,'"');
var final_data = remove.replace(/'/g,' ');
它根本不起作用。我也尝试过使用JSON.parse(),但它不返回任何内容。 如何将var final_data的类型更改为object?
解决方法
由于JSON的语法是从JavaScript的语法中借来的,因此在输出<script>
时,通常可以在JavaScript期望 Expression 的位置按原样插入JSON。在这种情况下,使用变量赋值,这意味着{{ node_data }}
周围的引号是不必要的。
按照以下replace
的建议,视图引擎可以输出用HTML实体(node_data
等)编码的"
,这可能会与删除引号产生冲突。您尚未注意到正在使用哪个视图引擎,尽管许多使用大括号(“小记号”)的视图引擎允许使用三重大括号来禁用HTML编码。
因此,针对这两种情况进行调整,请尝试以下操作:
var final_data = {{{ node_data }}};
发送到客户端/浏览器的结果应类似于:
var final_data = [{"name": "1","children":[...]}]; // `...` just for brevity
(如果当前的视图引擎不支持三括号,您能记下您使用的是哪个引擎吗?)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。