2017-01-07 53 views
0

我完全不知所措。在JSON數據線1列1意外的字符:JSON.parse:意外字符 - 語法正確,數據類型爲字符串

{"result":0,"extra":"2a9e10ecdeb8e65165c8635d51fd6b8f6fa7c10e951167a093ac1621e81dd7e8"} 

由異常報告的確切的錯誤是:

JSON.parse試圖JSON.parse()以下字符串時,我得到一個異常

根據JSONLint,字符串語法是正確的。我也確認數據類型是字符串。

什麼可能導致異常?

+3

如果你傳遞'JSON.parse'的東西真的是一個字符串,而這些都是它的內容,那麼你就不會得到那個錯誤。 (除非你用非標準的東西代替了'JSON.parse',你可能還沒有這樣做。)用一個[mcve]更新問題,我們可以看到這個問題證明了問題。 –

+0

你確定'JSON.parse'的輸入是'string'而不是JSON對象嗎? –

+0

嘿你的輸入是對象,這就是爲什麼你得到錯誤 –

回答

0

也許你忘了引用字符串?

console.log(JSON.parse('{"result":0,"extra":"2a9e10ecdeb8e65165c8635d51fd6b8f6fa7c10e951167a093ac1621e81dd7e8"}'))

省略引號將產生的對象常量:

console.log({"result":0,"extra":"2a9e10ecdeb8e65165c8635d51fd6b8f6fa7c10e951167a093ac1621e81dd7e8"})

+0

他已經說過它**是一個字符串。 –

0

你可能從字面上分配該值,至極的對象不是字符串,所以:

var invalidJSON = {"result":0,"extra":"2a9e10ecdeb8e65165c8635d51fd6b8f6fa7c10e951167a093ac1621e81dd7e8"}; 

var validJSON = '{"result":0,"extra":"2a9e10ecdeb8e65165c8635d51fd6b8f6fa7c10e951167a093ac1621e81dd7e8"}'; 
+0

他已經說過它**是一個字符串。 –