can';t在javascript中检索json值

can';t在javascript中检索json值,javascript,jquery,json,Javascript,Jquery,Json,我从get返回了以下消息: {"status":"success"} 我的代码如下所示: $.get(url, function(result) { console.log(result) console.log(result['status']) console.log(result.status) return false; }); 这将打印以下内容:

我从get返回了以下消息:

{"status":"success"}
我的代码如下所示:

$.get(url, function(result) { 
        console.log(result)                  
        console.log(result['status'])
            console.log(result.status)          
        return false;
    });
这将打印以下内容:

{"status":"success"}
undefined
undefined

我做错了什么?

您的JSON可能没有使用正确的HTTP头来标识它为JSON(您可以在浏览器开发工具的“网络”选项卡中检查头),它可能没有被解析。试一试

console.log(JSON.parse(result)['status'])
或者将
数据类型设置为
“json”


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

大概是:您使用错误的
内容类型
头提供JSON,因此jQuery没有通过JSON解析器传递它


确保URL在标题中返回
内容类型:application/json

如果您的
控制台.log
显示
“{”状态“:“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);
});

您必须指定希望接收JSON数据。它是
jQuery.get
函数中的另一个参数

$.get(url, function(result) { 
    console.log(result)                  
    console.log(result['status'])
        console.log(result.status)          
    return false;
}, 'json'); // <---- HERE
$.get(url,函数(结果){
console.log(结果)
console.log(结果['status'])
console.log(result.status)
返回false;
}“json”)//