javascript - 在作为 EJS 模板传递以查看的字符串化 JSON 中转义单引号

标签 javascript json node.js ejs

我有一个 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/

相关文章:

javascript - codeigniter通过ajax和json从数据库获取数据

javascript - 为什么 Mongoose 想要将我的字符串转换为 ObjectId?

javascript - jQuery:如何覆盖特定元素的默认方法(即 html、append)?

javascript - javascript中如何从函数外部获取值?

android - 如何使用 GSON 解析 JSON 响应(不同对象类型)

node.js - Nodemon 和 Jest,仅在异步运行 Babel 时支持

node.js - 执行耗时 60006 毫秒,完成状态为 : 'timeout'

php - 从网站的单个目录下载所有图像

javascript - 禁用链接和 <abbr> 上的浏览​​器工具提示

xml - JSON 和 XML 有可比性吗?