我有一个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>
答案 0 :(得分:2)
JSON.stringify
返回对象的有效JSON文本表示。你不需要解析它:
<script>
window.foo = <%- JSON.stringify([{"bar": "baz's lorem ipsum"}]) %>;
</script>