2017-06-19 82 views
1

我有陣列連接到一個HTML元素的數據類別屬性類似如下:爲什麼jQuery不能解析/#{在數組字符串內?

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'))時,出現無法識別的分析錯誤#

我猜想有\#{字符串有問題,但無法弄清楚什麼。

這可能是一個錯誤?

感謝

+1

幾乎不可能看到任何東西(我認爲它是HTML)。您應該將$('。element')。data('categories')的輸出打印到控制檯中,並可能將這樣的輸出發佈到JSON驗證器中。 –

+0

使用\\修復字符串\\#而不是\# –

回答

2

根據JSONLint你必須在反斜槓:

"String\#{cas" 

...應該是:

"String\\#{cas" 

JSON JavaScript不,不會忽略無效的轉義序列。唯一有效的有這些:

Escape sequences

的總體問題可能是由字符串連接生成JSON的一種症狀,而不是使用正確的庫。