我正在尝试将ruby散列嵌入到json字符串中,该字符串可以由javascript JSON.parse进行解析。
我有逃跑的问题。
Ruby:
props = {sring: 'He said "hey"'}
HAML
:javascript
const props = JSON.parse('#{props.to_json}');
它将呈现为
<script>
const props = JSON.parse('{"sring":"He said \"hey\""}');
</script>
这将引发以下错误:
Uncaught SyntaxError: Expected ',' or '}' after property value in JSON at position 19
at JSON.parse (<anonymous>)
at (index):58:24
我体验过一些,JSON.parse可以解析以下字符串,但不确定如何从转义函数生成它:
<script>
const props = JSON.parse('{"sring":"He said \\\"hey\\\""}');
</script>
2条答案
按热度按时间vxbzzdmp1#
是的,行为很奇怪,但您总是可以将DOM用于此目的,如下所示
ycl3bljg2#
调用Hash对象,而不是字符串对象
你误解了在哪里应用#to_json。您当前正在将其应用于一个字符串对象,而您应该序列化整个Hash。例如:
换句话说,将您的Hash转换为JSON,而不是字符串。字符串本身不能正确地序列化到JavaScript对象表示法或从它序列化,它需要是键/值格式。