2010-10-06 5 views
3

Получаю ответ от запроса Ajax. Javascript, кажется, intepret это как строка. (Когда я говорю alert this.responseText, отображается вся строка)преобразовать строку в json array

Как я могу преобразовать его в объект javascript (JSON)?

{"response": { 
    "success": "The activity has been removed", 
    "message": "0" 

    } 
} 

Я не использую jquery.

+0

используя прототип или собственный javascript? – Detect

+0

Причиной может быть код «http status». Проверьте код статуса http (через F12 в IE или Firebug в FF), чтобы узнать, равно ли 200 (= OK) или нет. – Tohid

+0

проверить http://stackoverflow.com/questions/45015/safely-turning-a-json-string-into-an-object – Detect

ответ

2

Это не самое безопасное в мире, но вы можете сделать это:

var value = null, txt = this.responseText; 
eval("value = (" + txt + ")"); 

Это может быть немного безопаснее сделать:

var value = null, txt = this.responseText; 
!function(window) { eval("value = (" + txt + ")"); }(); 

но есть еще всякие потенциал хаки. Вам лучше использовать библиотеку.

+0

целевыми пользователями являются устройства Blackberry. Большинство библиотек не работают (хорошо или вообще) со старым BB. Я пытаюсь XUI, но пока не понял его возможности JSON. – robert

+0

Этот ответ также работает для меня: http://stackoverflow.com/a/9904328/538387 – Tohid

15

Если вы используете JQuery, JSON.parse(this.responseString); или jQuery.parseJSON(this.responseString); должен работать.

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