Вопрос по js функции eval()

Z
На сайте с 20.05.2008
Offline
80
1872

...

//После AJAX запроса к серверу в js приходит запрос в виде JSON.(JSON 100% правильный)

var response = request.responseText;

//Пытаюсь получить объект. (Погуглил, так указано)

var spez = eval(request.responseText);

//Получаю ошибку. Что я делаю не так?

СД
На сайте с 17.02.2008
Offline
20
#1
zKostya:
Что я делаю не так?

попутали форум программистов с форумом телепатов.

что за ошибка?

Деньги ... легко. () я плохой ребенак, люблю пиво и ненавижу даунов оставил хамский коммент и не подписался? Мог бы и не трудиться, на уродов не в обиде)
Z
На сайте с 20.05.2008
Offline
80
#2

Ошибка: Предполагается наличие ";" в строчке с var spez = eval(request.responseText);

dlyanachalas
На сайте с 15.09.2006
Offline
693
#3

вызовите

alert(request.responseText);

посмотрите, что там.

Z
На сайте с 20.05.2008
Offline
80
#4
dlyanachalas:
вызовите

alert(request.responseText);

посмотрите, что там.

Ну, с алерта не удобно ctrl-c делать :).

Но все же:


{"spez": [{"specialization":{"id": "13","name":"охрана природы и рациональное использование природных ресурсов"}},{"specialization":{"id": "14","name":"мониторинг окружающей среды"}}]};

Вполне себе валидный json

Kolyaj
На сайте с 28.03.2006
Offline
69
#5

zKostya, в скобки нужно взять, т.к. JavaScript думает, что {} операторные скобки

var spez = eval('(' + request.responseText + ')');
Z
На сайте с 20.05.2008
Offline
80
#6
Kolyaj:
zKostya, в скобки нужно взять, т.к. JavaScript думает, что {} операторные скобки
var spez = eval('(' + request.responseText + ')');

Ошибка: Предполагается наличие ')'

update: Kolyaj, все правильно. Надо было еще убрать ";" из серверного ответа и сделать

так: var spez = eval('(' + request.responseText + ');');

Кроме этого, из другого метода пришел менее очевидный ответ:

eval('var spez = '+request.responseText);

Тоже кстати работает.

Kolyaj, респект. Остальным тоже спасибо.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий