使用JavaScript进行JSON字符串评估,并使用JavaScript获得它的价值

时间:2011-11-22 18:03:20

标签: javascript ajax json evaluation

我有这种情况(我的服务器返回的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));我得到:stringtypeof返回值。

这样做时:

window.eval(availableUsers);不会按预期评估JavaScript对象。

如何将有效的JSON响应(使用,async:false)转换为JavaScript可访问的对象,或者如何对从服务器返回的字符串进行属性评估?

谢谢!

2 个答案:

答案 0 :(得分:0)

尝试将您的请求的内容类型设置为application / json 在此处阅读更多内容:What is the correct JSON content type?

答案 1 :(得分:0)

为什么不在回调中获取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 
});

通过回调,您可以使用从服务器获得的对象执行任何操作。