Javascript 为什么Json字符串化在使用express将数组发送到前端时有帮助?
我正在使用Nodejs和ejs模板。我的Nodejs后端中有一个数组,如下所示:Javascript 为什么Json字符串化在使用express将数组发送到前端时有帮助?,javascript,node.js,Javascript,Node.js,我正在使用Nodejs和ejs模板。我的Nodejs后端中有一个数组,如下所示: array= [false,false,false,false] 现在,如果我试着把这个发送给我的EJ res.render("home",{myarray:array} 在我的ejs中(前端) 但是,在我的后端,如果我更改 res.render("home",{myarray:array} 到 一切正常。Myarray现在再次成为一个数组: [false,false,false,false] 我只是不明白
array= [false,false,false,false]
现在,如果我试着把这个发送给我的EJ
res.render("home",{myarray:array}
在我的ejs中(前端)
但是,在我的后端,如果我更改
res.render("home",{myarray:array}
到
一切正常。Myarray现在再次成为一个数组:
[false,false,false,false]
我只是不明白,当我无法发送常规数组时,为什么JSON.stringify会帮助我从后端向前端发送数组。一般来说,当前端从服务器读取任何内容时,所有内容都是文档/字符串格式,需要解密 因为EJB将以html格式传递变量,所以所有变量都需要字符串化
您也可以在Scriptlet中字符串化变量,而不是直接传递字符串化变量
let myarray=
您可以在EJB中使用直接数组,但必须在EJB中使用循环。如果通过JSON.stringify发送,则可以通过JSON.parse()进行还原 重复问题
res.render("home",{myarray:array}
res.render("home",{myarray:JSON.stringify(array)}
[false,false,false,false]