2017-07-05 21 views
0

爲什麼會在瀏覽器中給出JSON解析錯誤?它看起來是有效的JSON保存在一個文字字符串,然後傳遞到一個解析器。我們不能把stringifed json放入一個javascript字符串然後解析嗎?腳本中帶有轉義引號的JSON文字

<script> 
    var text='{"value": "I said, \"hello\""}'; 
    var selectGroupsRows =JSON.parse(text); 
</script> 
+0

''\''是在字符串中的轉義字符*和* JSON字符串。 「{」value「的值:」我說,\「hello \」「}」'是'{「value」:「我說,」你好「」}}'。正如你所看到的,它不包含任何反斜槓,但是內部的'''需要被轉義。「 –

+0

*」我們不能把字符串化的json放入一個JavaScript字符串然後解析嗎?「*取決於你準確的意思。一般來說,必須小心地將任意內容放入一個字符串** literal **中,因爲字符串文字有自己的解析規則(比如'''''的處理和''''和'''可能會終止字符串文字),所以任何*特殊字符*都需要先被轉義。在你的例子中,你沒有逃過''''。但是,當然,你可以輕鬆解析任何'JSON.stringify()'返回的內容。 –

回答

0

您需要將您的引號兩次(一次用於JavaScript,一次用於JSON)轉義。

var text='{"value": "I said, \"hello\""}'; 

應該

var text='{"value": "I said, \\"hello\\""}'; 
+0

不,它應該是'var text ='{「value」:「我說,\」hello \\「」}';',但是你的工作也很好,因爲'\「' 。雖然這裏沒有必要逃避''' –

+0

@FelixKling謝謝你!我已經更新了我的答案。 – InternetUnexplorer

相關問題