2015-10-13 176 views
1

如何將var string = "{email: [email protected]}"解析爲對象?如何解析對象的字符串?

我已經試過var object = JSON.parse(string);它返回一個錯誤

Uncaught SyntaxError: Unexpected token e(…) 

而且var object eval('(' + string + ')');無法處理 '@'。

+0

您的字符串無效JSON。你使用什麼格式? – tcooc

+0

'JSON.parse'不工作,因爲'email'鍵和相應的值需要是字符串才能成爲有效的JSON。如果你只是在學習JSON,或者沒有完全掌握語法,請嘗試通過[JSONLint](http://jsonlint.com/)運行它,它會爲你指出錯誤。 –

+0

這就是說,相反,字符串應該是這樣的: 'var string =「{'email':'[email protected]'}」'? – Wesley

回答

0

由於您使用了無效的JSON字符串,因此無法將您的字符串轉換爲JavaScript對象。更改

var string = "{email: [email protected]}"; 

var string = '{"email": "[email protected]"}'; 

var string = '{"email": "[email protected]"}'; 
+0

這仍然是無效的JSON –

+0

對不起,我改變了它。 – Aakash

+0

我們走了,好多了! –

1

感謝@ iam解碼器 - 查看最初問題的評論以獲取更多信息。

兩個成功爲我返回對象的解決方案。

首先 - 保存價值與轉義字符的字符串如下:
var string = "{\"email\": \"[email protected]\"}"
var result = JSON.parse(string);


二 - 只需透過JSON.stringify的對象,而不是建立一個字符串,然後解析:
var string = JSON.stringify(object);
var result = JSON.parse(string);