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

时间:2016-03-11 00:45:03

标签: javascript json node.js ejs

我有一个NodeJS应用程序,它使用EJS模板将服务器中的变量注入到视图中。我遇到了特定值的问题,这是一个包含其值可能包含撇号的对象的数组。我必须在传递给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>

1 个答案:

答案 0 :(得分:2)

JSON.stringify返回对象的有效JSON文本表示。你不需要解析它:

<script>
  window.foo = <%- JSON.stringify([{"bar": "baz's lorem ipsum"}]) %>;
</script>