joe*_*joe 7 javascript json ejs express
当我从我的快速路径发送一个包含对象数组的对象到我的客户端时,我得到一个[Object对象],然后当我尝试对它进行字符串化时,我得到这个带有此控制台消息的疯狂字符串
var messages = "<%=(JSON.stringify(messages))%>"
console.log(messages)
Run Code Online (Sandbox Code Playgroud)
将其打印到控制台......
{"messages":[{"content":"cool mane","creator":"joe"},{"content":"test 4","creator":"joe"},{"content":" ewgdqf","creator":"joe"},
Run Code Online (Sandbox Code Playgroud)
它应该是一些东西,所以我可以通过做消息[0] .content迭代它,但我得到这个疯狂的字符串,不会让我做任何事情...
如果我尝试遍历它,它只会打印出每个字符.
Fel*_*ing 13
使用时<%= ... %>,EJS将编码/转义任何输出.这就是为什么"JSON中的编码为".根据这个答案,您可以通过使用<%- ... %>来防止转义.
也没有必要将输出放在字符串文字中.这实际上很糟糕,因为您可以通过嵌套引号获得问题.让它直接输出到JS代码:
var messages = <%-JSON.stringify(messages)%>;
Run Code Online (Sandbox Code Playgroud)