Оценка строки JSON с помощью JavaScript и получение ее значения с помощью JavaScript - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть этот случай (строка JSON, возвращаемая моим сервером):

{"success": true, "users": [1, 3, 4, 8]}

Однако при использовании такого типа запроса я получу этот ответ в виде "строки":

var availableUsers = $.ajax({
    url: absPath + '/users/findUsers',
    type: 'POST',
    data: {contents: $('#messageTo').val()},
    dataType: 'json',
    async: false
}).responseText;

С: alert(typeof(availableUsers)); Я бы получил: string Возвращаемое значение от typeof.

При этом:

window.eval(availableUsers); Это не будетоценивается, как и ожидалось, в объект JavaScript.

Как получить действительный ответ JSON (используя async: false), преобразованный в доступный объект JavaScript, или как правильно оценить строку, возвращаемую с сервера?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 22 ноября 2011

Почему бы не получить объект JSON в обратном вызове?Проверьте настройку success.

$.ajax({
     url: absPath + '/users/findUsers',
     type: 'POST',
     data: {contents: $('#messageTo').val()},
     dataType: 'json',
     success: function(data){
         var availableUsers = data;
         alert(typeof availableUsers);
     },
     async: false 
});

С помощью обратного вызова вы можете делать все, что захотите, с объектом, полученным с сервера.

0 голосов
/ 22 ноября 2011

попробуйте установить тип содержимого вашего запроса в application / json, прочитайте больше здесь: Какой тип содержимого JSON правильный?

...