Javascript JSON从EJS到JS中的JSON对象

Javascript JSON从EJS到JS中的JSON对象,javascript,node.js,mongodb,ejs,Javascript,Node.js,Mongodb,Ejs,我将EJS与Node.JS一起使用,并将一个JSON对象传递给它,但需要作为页面中的可用对象访问它。我从以下位置获得意外的令牌o错误: var initData=JSON.parse(<%-JSON.stringify(list)%>); 试试这个: var initData = JSON.parse('<%-JSON.stringify(list)%>'); var initData=JSON.parse(“”); 或: var initData=; 第一个操作非

我将EJS与Node.JS一起使用,并将一个JSON对象传递给它,但需要作为页面中的可用对象访问它。我从以下位置获得意外的令牌o错误:

var initData=JSON.parse(<%-JSON.stringify(list)%>);
试试这个:

var initData = JSON.parse('<%-JSON.stringify(list)%>');
var initData=JSON.parse(“”);
或:

var initData=;

第一个操作非常有效!您能解释一下为什么单引号使它工作吗?@GeorgeL
JSON.parse
将字符串作为参数,并查看您的输出,您正在
JSON.parse中传递数组。单引号可以这样做:
JSON.parse(“[{”title:“…”}]”)
而不是:
JSON.parse([{”title:“…”}])
为什么initData是对象而不是字符串?我们严格化了it@OMGPOP我想也是这样,我猜这与
有关。小心,这种方法不适用于任意对象。例如,正则表达式最终成为空对象<代码>{a:/bcd/}
将输出
{a:{}
。这是因为正则表达式有序列化问题-。我不知道其他类型是否有这个问题。
var initData = JSON.parse('<%-JSON.stringify(list)%>');
var initData = <%-JSON.stringify(list)%>;