为什么jquery可以';t parse/#{在数组字符串中?

为什么jquery可以';t parse/#{在数组字符串中?,jquery,json,Jquery,Json,我将数组附加到html元素的data categories属性,如下所示: data-categories='["Commit Sha: 2ee57d5<br>Commit Date: 2017-05-21 14:29:00 UTC<br>Commit Message: remove verify option\n\ngit-s...<br>ruby 2.5.0dev (2017-05-21 trunk 5883

我将数组附加到html元素的data categories属性,如下所示:

data-categories='["Commit Sha: 2ee57d5<br>Commit Date: 2017-05-21 14:29:00 UTC<br>Commit Message: remove verify option\n\ngit-s...<br>ruby 2.5.0dev (2017-05-21 trunk 58832) [x86_64-linux]", "Commit Sha: 48070ce<br>Commit Date: 2017-05-21 16:45:35 UTC<br>Commit Message: downloader cache\n\n* tool/do...<br>ruby 2.5.0dev (2017-05-21 trunk 58833) [x86_64-linux]", "Commit Sha: 47f2bd9<br>Commit Date: 2017-05-21 19:25:19 UTC<br>Commit Message: Use should_receive expectat...<br>ruby 2.5.0dev (2017-05-22 trunk 58835) [x86_64-linux]", "Commit Sha: 913afdf<br>Commit Date: 2017-05-21 19:27:08 UTC<br>Commit Message: test_string.rb,test_symbol....<br>ruby 2.5.0dev (2017-05-22 trunk 58836) [x86_64-linux]", "Commit Sha: 40bc846<br>Commit Date: 2017-05-21 19:28:48 UTC<br>Commit Message: string.c: fix String\#{casec...<br>ruby 2.5.0dev (2017-05-22 trunk 58837) [x86_64-linux]"]'
虽然这个数组似乎是有效的json,但当我调用
$('.element').data('categories')
时,它会返回未解析的字符串。当我调用
json.parse($('.element').data('categories'))
时,会出现解析错误,无法识别
.

我想把
\\\\{
放在字符串中是有问题的,但我不知道是什么原因

这可能是虫子吗

谢谢

根据您的要求,您有一个未替换的反斜杠:

"String\#{cas"
……应该是:

"String\\#{cas"
不是JavaScript,不会忽略无效的转义序列。唯一有效的转义序列是:


总的问题可能是JSON是通过字符串连接生成的,而不是使用适当的库。

几乎不可能看到任何东西(我假设它是HTML)。您应该打印
$('.element').data('categories')的输出
进入控制台,并可能将此类输出发布到JSON验证器中。请使用\\fix String\\\\而不是\#