javascript - 使用 vanilla JavaScript 将 JSON 数据存储在变量中

标签 javascript json

我正在尝试从 JSON 文件访问数据,但控制台的结果是未定义

GET 响应很好,该功能可以工作,但我不知道如何访问响应。

function AJAX_JSON_Req(url) {
    var AJAX_req = new XMLHttpRequest();
    AJAX_req.open("GET", url, true);
    AJAX_req.setRequestHeader("Content-type", "application/json");

    AJAX_req.onreadystatechange = function() {
        if(AJAX_req.readyState == 4 && AJAX_req.status == 200){
            return JSON.parse(AJAX_req.responseText);
        }
    };

    AJAX_req.send();
}

var q = AJAX_JSON_Req('questions.json');

console.log(q); //undefined

http://codepen.io/gsg/pen/LEEeMg

最佳答案

请记住,这是一个异步函数。尝试使用回调,看看是否会更成功。

function AJAX_JSON_Req(url, callback) {
    var AJAX_req = new XMLHttpRequest();
    AJAX_req.open("GET", url, true);
    AJAX_req.setRequestHeader("Content-type", "application/json");

    AJAX_req.onreadystatechange = function() {
        if(AJAX_req.readyState == 4 && AJAX_req.status == 200){
            callback(JSON.parse(AJAX_req.responseText));
        }
    };

    AJAX_req.send();
}

AJAX_JSON_Req('questions.json', function (q) {
  console.log(q);
});

关于javascript - 使用 vanilla JavaScript 将 JSON 数据存储在变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27045214/

相关文章:

javascript - MongoDB 安全性,我缺少什么?

c# - 反序列化具有未知字段的 JSON

javascript - 使用javascript在json文件中添加键和值

java - 从 Java 类创建 JSON 模式

javascript - 数组未显示在模板中,Meteor

javascript - 覆盖/_core/js/product.js中的函数

php - 将鼠标悬停在 <nav> 链接上时,网站会随机更改悬停背景大小

javascript - 谷歌图表 mysql PHP

android - GCM 是如何工作的? (适用于 Android 的谷歌云消息传递)

json - 从 Postgres JSONB 列中提取值