我有一个 NodeJS 应用程序,它使用 EJS 模板将变量从服务器注入(inject)到 View 中。我在处理某个特定值时遇到问题,该值是一个包含其值可能包含撇号的对象的数组。在传递给 JSON.parse 时,我必须将 EJS 模板字符串用单引号括起来,结果,撇号在传递给 JSON.parse 的字符串末尾时会被混淆。我尝试过转义撇号,但没有成功。
<script>
window.foo = JSON.parse('<%- JSON.stringify([{"bar": "baz's lorem ipsum"}]) %>');
</script>
解释为:
<script>
// the string is cut off between the first quote & baz's apostrophe
window.foo = JSON.parse('[{"bar": "baz's lorem ipsum"}]');
</script>
最佳答案
JSON.stringify
返回对象的有效 JSON 文本表示形式。您不需要解析它:
<script>
window.foo = <%- JSON.stringify([{"bar": "baz's lorem ipsum"}]) %>;
</script>
关于javascript - 在作为 EJS 模板传递以查看的字符串化 JSON 中转义单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35930197/