Почему Eval терпит неудачу здесь? - PullRequest
1 голос
/ 29 ноября 2010
0001: response
$[0] = [string] "{\"code\":200,\"id\":121}"
0001: eval(response)
SyntaxError: invalid label

Кто-нибудь знает?

Ответы [ 2 ]

14 голосов
/ 29 ноября 2010

Вы должны заключить его в (), чтобы вызвать оценку выражения, например:

eval("(" + response + ")")

Вы можете проверить это здесь .


Хотя лучшим методом является собственная обработка JSON:

var result = JSON.parse(response);

Просто включите json2.js для поддержки более старых браузеров (JSON объект, если он отсутствует.

4 голосов
/ 29 ноября 2010

Вам нужно заключить строку JSON в скобки.

В противном случае { ... } интерпретируется как блок исполняемых операторов, а это не так.

Заключая его в скобки, вы заставляете интерпретатора интерпретировать его как выражение.

...