无法在 JavaScript 中检索 JSON 值

can't retrieve json value in javascript

本文关键字:检索 JSON JavaScript      更新时间:2023-09-26

我从get返回了以下消息:

{"status":"success"}

我的代码如下所示:

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

这将打印以下内容:

{"status":"success"}
undefined
undefined

我做错了什么?

如果你

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);
});

必须指定要接收 JSON 数据。这是jQuery.get函数中的另一个参数

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

否则,您的result将被视为字符串。

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

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

或将datatype设置为 "json"

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

大概是:你正在为JSON提供错误的Content-Type头,所以jQuery没有通过JSON解析器传递它。

确保 URL 在标头中返回Content-Type: application/json