无法在javascript中检索json值

时间:2013-10-31 21:33:58

标签: javascript jquery json

我从get:

返回了以下消息
{"status":"success"}

我的代码如下:

$.get(url, function(result) { 
        console.log(result)                  
        console.log(result['status'])
            console.log(result.status)          
        return false;
    });

这将打印以下内容:

{"status":"success"}
undefined
undefined

我做错了什么?

4 个答案:

答案 0 :(得分:1)

如果您的console.log显示"{"status":"success"}",则表示您的JSON未被解析。你需要告诉jQuery为你做这件事:

$.get(url, function(result) { 
    console.log(result);     
    console.log(result['status']);
    console.log(result.status);
}, 'json');

或者,更好的是:

$.getJSON(url, function(result) { 
    console.log(result);     
    console.log(result['status']);
    console.log(result.status);
});

答案 1 :(得分:1)

您必须指定您希望接收JSON数据。它是jQuery.get函数

中的另一个参数
$.get(url, function(result) { 
    console.log(result)                  
    console.log(result['status'])
        console.log(result.status)          
    return false;
}, 'json'); // <---- HERE

如果没有,您的result将被视为字符串。

答案 2 :(得分:0)

您的JSON可能没有正确的HTTP标头,并将其标识为JSON(您可以在浏览器的开发工具的“网络”选项卡中查看标头),它可能未被解析。尝试

console.log(JSON.parse(result)['status'])

或将datatype设置为"json"

如果您管理服务器,则应修复标头。

答案 3 :(得分:0)

据推测:您使用错误的Content-Type标头为JSON提供服务,因此jQuery不会通过JSON解析器传递它。

确保网址在标题中返回Content-Type: application/json