javascript - 将本地 JSON 数据加载到图表中(JSON+Highcharts)
问题描述
我在 HTML 中直接包含 JSON 数据的代码工作正常,但是当我尝试加载与本地 .json 文件(名为 co.json)相同的数据时,我无法使其工作。我正在使用 XAMPP 制作本地服务器,并且 html 和 json 文件位于同一文件夹中。有人可以告诉我吗?
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title>Highcharts data from JSON Response</title>
<style>
body{
margin-top: 30px;
margin-left:40px;
}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var JSON = [{
"vrijednostOS": "0.191",
"vrijednostRI": "0.205",
"vrijednostZG": "0.245",
"mjernaJedinica":"mg\/m3",
"vrijeme": "2018-08-01 T00:00:00+02:00"
}, {
"vrijednostOS": "0.2",
"vrijednostRI": "0.2",
"vrijednostZG": "0.234",
"mjernaJedinica":"mg\/m3",
"vrijeme": "2018-08-02 T00:00:00+02:00"
}, {
"vrijednostOS": "0.226",
"vrijednostRI": "0.196",
"vrijednostZG": "0.234",
"mjernaJedinica":"mg\/m3",
"vrijeme": "2018-08-03 T00:00:00+02:00"
}, {
"vrijednostOS": "0.245",
"vrijednostRI": "0.2",
"vrijednostZG": "0.24",
"mjernaJedinica":"mg\/m3",
"vrijeme": "2018-08-04 T00:00:00+02:00"
}, {
"vrijednostOS": "0.257",
"vrijednostRI": "0.2",
"vrijednostZG": "0.256",
"mjernaJedinica":"mg\/m3",
"vrijeme": "2018-08-05 T00:00:00+02:00"
}, {
"vrijednostOS": "0.226",
"vrijednostRI": "0.209",
"vrijednostZG": "0.256",
"mjernaJedinica":"mg\/m3",
"vrijeme": "2018-08-06 T00:00:00+02:00"
}, {
"vrijednostOS": "0.255",
"vrijednostRI": "0.209",
"vrijednostZG": "0.277",
"mjernaJedinica":"mg\/m3",
"vrijeme": "2018-08-07 T00:00:00+02:00"
}];
var options = {
chart: {
renderTo: 'container',
type: 'spline'
},
title: {
text: 'Dnevni udio ugljikovog monoksida u zraku 1.8.2018. - 7.8.2018.'
},
tooltip: {
valueSuffix: {}
},
xAxis: {},
series: [{},{},{}],
yAxis: {
title: { text: "mg/m3" }
}
};
var categories = [],
points = [];
points2 = [];
points3 = [];
mj = [];
$.each(JSON, function(i, el) {
categories.push(el.vrijeme);
mj.push(el.mjernaJedinica);
points.push(parseFloat(el.vrijednostOS));
points2.push(parseFloat(el.vrijednostRI));
points3.push(parseFloat(el.vrijednostZG));
});
options.xAxis.categories = categories;
options.series[0].data = points;
options.series[0].name = "Osijek";
options.series[1].data = points2;
options.series[1].name = "Rijeka";
options.series[2].data = points3;
options.series[2].name = "Zagreb (Međunarodna zračna luka)";
options.tooltip.valueSuffix = mj[0];
var chart = new Highcharts.Chart(options);
});
</script>
</head>
<body>
<div id="container" style="height: 400px"></div>
</body>
</html>
尝试过var JSON = $.getJSON("co.json");
,制作图表但没有任何数据,其他尝试只显示一个空窗口。
解决方案
好吧,我想通了。(更改了 var 的名称以减少混淆)
var co = $.ajax({
url: "json.json",
async: false
}).responseText;
co = JSON.parse(co);
推荐阅读
- java - Kucoin Api KC-API-PASSPHRASE 无效
- ambassador - 大使服务和代理有什么区别?
- vertex-shader - deck.gl - 项目(着色器模块)
- python - 添加到从文件读取的值时,获取“只能将 str(而不是“int”)连接到 str”
- c++ - 减少从一个城市跑到不同站点的公交车的重叠计数直线,我目前的做法可以优化吗?
- c++ - 可以使用宏来简写函数调用吗?C++
- php - 如何获取分页链接以响应和显示我的结果页面?
- google-apps-script - 挡在 Google 表格 aws 前面
- python - Python在循环中绘制数据帧的数字列,同时动态改变xtick频率
- python - 您如何获取文件名并在标签中保存和显示名称。KivyMD Kivy Python