2014-11-02 46 views
0

我將這個變量strJSON傳遞給客戶端頁面。 此變量包含這樣的數據:JavaScript中解析JSON的問題

[{"firstName":"Michael","lastName":null,"emails":["[email protected]"]}, 
{"firstName":null,"lastName":null,"emails":["[email protected]"]}, 
{"firstName":"Olga","lastName":null,"emails":["[email protected]"]}] 

我嘗試解析JSON以JavaScript對象:

var parsedJSON = JSON.parse(strJSON); 

但排在上面我得到這個錯誤:

SyntaxError: JSON.parse: expected property name or '}' at line 1 column 3 of the JSON data 

我認爲,我得到的錯誤,因爲JSON必須在單引號,所以在我解析JSON之前,我這樣做:

strJSON= "'" + str + "'"; 

但是在我加入上面行,我此行中:

var parsedJSON = JSON.parse(strJSON); 

我得到這個錯誤:

SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data 

任何想法,我做錯了什麼? 預先感謝您。

+0

「JSON必須用單引號」 - 這是無稽之談。你可以使用單引號來創建一個JavaScript *字符串,而不必轉義所有的''',但數據不應該包含在末尾。「 – Quentin 2014-11-02 11:33:46

+0

[Your code does not show the error](http:// jsbin無論你的問題是什麼,它必須在別處 – Quentin 2014-11-02 11:35:48

+0

strJSON等於什麼​​?你可以將它添加到帖子嗎?(上面的字符串看起來像一個JSON) – Protostome 2014-11-02 11:35:57

回答

0

第一字符串化則JSON解析:

var str=[{"firstName":"Michael","lastName":null,"emails":["[email protected]"]}, 
{"firstName":null,"lastName":null,"emails":["[email protected]"]}, 
{"firstName":"Olga","lastName":null,"emails":["[email protected]"]}]; 

var parsedJSON = JSON.parse(JSON.stringify(str)); 

console.log(parsedJSON); 
+0

這是我試過的東西之一: strJSON =」'「+ str +」'「; 我收到此錯誤: SyntaxError:JSON.parse:JSON數據第1行第1列的意外字符 – Michael 2014-11-02 11:48:34

+1

不,它不是同一件事。您嘗試將引號添加到數組中,而不是字符串。 – strah 2014-11-02 11:59:46

+0

嘗試更新代碼。 – 2014-11-02 12:00:51