Исправлены две проблемы:
- Добавьте кавычки вокруг "OK", чтобы сделать его допустимой строкой JavaScript.
- Добавить паренсы вокруг строки перед отправкой в eval, как это
eval("(" + jsonString + ")")';
Это:
{status:OK,addresses:[0,1,2,3,4,5]}
должно быть изменено на это:
{status:"OK",addresses:[0,1,2,3,4,5]}
должен быть действующим Javascript (обратите внимание на кавычки вокруг "OK").
Должно быть, это действительно JSON (кавычки тоже вокруг ключей):
{"status":"OK", "addresses":[0,1,2,3,4,5]}
ОК, само по себе не является известным фрагментом Javascript без кавычек вокруг него, чтобы превратить его в строку Javascript. В будущем вы можете проверить себя на небольшом тестовом стенде и посмотреть, какая ошибка в вашем любимом отладчике javascript:
http://jsfiddle.net/jfriend00/FcSKR/
var jsonString = '{"status":"OK","addresses":[0,1,2,3,4,5]}';
var jsonObj = eval("(" + jsonString + ")");
alert("success");
Если вы по-прежнему получаете ошибку с {"status":"OK","addresses":[0,1,2,3,4,5]}
и добавлением паренов перед отправкой в eval, тогда ваши данные не соответствуют вашим ожиданиям, и вам необходимо выполнить некоторую отладку, чтобы точно определить, что содержится в ответе ( посмотрите на значение в отладчике, поместите значение в предупреждение и т. д.). Возможно, в ответе есть еще кое-что, чего вы не знали.
Примечание: в некоторых ситуациях анализатор JSON, такой как JSON.parse()
, и допустимая строка JSON безопаснее, чем eval()
с Javascript, который может быть любым.