2014-11-02 3 views
0

Передаю эту переменную strJSON на страницу клиента. Эта переменная содержит такие данные:Проблемы с разбором JSON в Javascript

[{"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

+0

[Ваш код не показывает эту ошибку] ​​(http: // jsbin .com/vajogiqifu/1/edit) .Какой бы ни была ваша проблема, она должна лежать где-то в другом месте. – Quentin

+0

: что делает strJSON равным? можете ли вы добавить его в сообщение? (указанная строка уже похожа на JSON) – Protostome

ответ

0

первый stringify 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: неожиданный символ в строке 1 столбец 1 данных JSON – Michael

+1

Нет, это не одно и то же. Вы пытались добавить кавычки в массив, а не в строку. – strah

+0

попробуйте обновленный код. –

Смежные вопросы