将本地JSON数据加载到图表中(JSON+Highcharts)

zc0qhyus  于 2023-03-04  发布在  Highcharts
关注(0)|答案(1)|浏览(174)

我的代码将JSON数据直接包含在HTML中,运行良好,但是当我尝试加载本地.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");,它生成了一个图表,但没有任何数据,其他尝试只是显示一个空窗口。

mwkjh3gx

mwkjh3gx1#

好吧,我已经知道了。(改变了var的名字,使它不那么混乱)

var co = $.ajax({
                url: "json.json",
                async: false
            }).responseText;

co = JSON.parse(co);

相关问题