javascript - 将教程代码中的数据替换为远程文件中的 JSON

标签 javascript json

我想修改以下代码:

<script>
var ctx = document.getElementById('myChart');
var myChart = new Chart(ctx, {
    type: 'bar',
    data: {
        labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', ],
        datasets: [{
            label: '# of Votes',
            data: [12, 19, 3, 5, 2],
            backgroundColor: [
                'rgba(255, 99, 132, 0.2)',
                'rgba(54, 162, 235, 0.2)',
                'rgba(255, 206, 86, 0.2)',
                'rgba(75, 192, 192, 0.2)',
                'rgba(153, 102, 255, 0.2)',
            ],
            borderColor: [
                'rgba(255, 99, 132, 1)',
                'rgba(54, 162, 235, 1)',
                'rgba(255, 206, 86, 1)',
                'rgba(75, 192, 192, 1)',
                'rgba(153, 102, 255, 1)',
            ],
            borderWidth: 1
        }]
    },
    options: {
        scales: {
            yAxes: [{
                ticks: {
                    beginAtZero: true
                }
            }]
        }
    }
});
</script>

并从我添加的单独文件中读取所有 json here

我尝试按如下方式执行此操作:

var requestURL = 'https://securitynews.s3.eu-west-2.amazonaws.com/testchartdata.json';
var request = new XMLHttpRequest();
request.open('GET', requestURL);
request.responseType = 'json';
request.send();
var chartObject = request.response;

但是当我尝试使用我提供的链接(chartObject 变量)中的 JSON 时,我在 javascript 控制台收到错误“无法读取正确的 Null 类型”。

最佳答案

send 不是同步的。您尝试在调用完成之前读取响应。您需要向 XMLHttpRequest 提供回调,以便在从 securitynews 获取响应时使用。

const requestURL =
  "https://securitynews.s3.eu-west-2.amazonaws.com/testchartdata.json";
const request = new XMLHttpRequest();
request.open("GET", requestURL);
request.send();

request.onreadystatechange = function() {
  if (request.readyState === 4) {
    var chartObject = request.response;
    console.log(chartObject);
  }
};

关于javascript - 将教程代码中的数据替换为远程文件中的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57485797/

相关文章:

javascript - 如何将单词列表按照最常用到最不常用的顺序排列?

javascript - Google map + Google 本地搜索根据英国邮政编码生成纬度/经度

javascript - 如何使用 Jquery 从复选框收集值的 JSON 对象?

json - 如何使用 serde_json 将 "NaN"反序列化为 `nan`?

python - PostgreSQL 关系不存在 (Python)

javascript - 我怎样才能让谷歌图表工具提示保持点击以点击其中的链接

javascript - 在 PHP 中使用 JS OOP

javascript - 如何 trim 数组中每个元素的最后两个字符?

json - 如果 map 是引用类型,为什么 json.Unmarshal 需要指向 map 的指针?

javascript - 从给定键的 JSON 中获取值,其中父键名称是动态的