发出在Highstock中加载JSON的问题

时间:2015-02-25 16:51:02

标签: javascript jquery json highstock

我已将Highstock盘中Apple股价示例htm文件上传至我的服务器:http://54.175.177.142/ef.html

很好用。这与Highstock示例下载中的内容相同,只是我已将.js路径更改为code.highcharts.com域中托管的路径,而不是示例文件夹中的.js路径。

现在我要做的是从highcharts.com托管的路径更改.json路径:

$.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename=new-    intraday.json&callback=?', function (data) { 

到我自己的服务器:$.getJSON('http://54.175.177.142/appleData.json', function (data) {

从这里开始我将JSON更改为我自己的数据,但作为第一步,我只想重做一下highstock示例。

问题在于,当我对$.getJSON电话进行此更改时,我得到一个空白页面,我甚至不会收到任何javascript错误。可以在以下位置查看此实现:http://54.175.177.142/intradayTest.htm

我尝试加载的JSON几乎与the original完全相同,除非我最近试图让它正常工作,我已经将#34;回调"在#34;和#34;的最顶端因为这是在将JSONP参数添加到示例中的链接(& callback =?)时加载的方式。我认为我不需要JSONP方法,因为我在自己的服务器上托管JSON,与html文件相同的域。我还尝试在不同的服务器上完全复制JSON,使用前导"回调"和JSONP参数,无济于事。

我的JSON在这里: http://54.175.177.142/appledata.json

我认为JSON本身有点不对劲。为了做到这一点,我只是选择了所有'在我的浏览器中的原始文件中,将其粘贴到Notepad ++中并将其保存为.json。然后我把它写到我的EC2上。

关于这里发生了什么的任何想法?

如果你不想去链接,这是html代码:

<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Highstock Example</title>

        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
        <style type="text/css">
${demo.css}
        </style>
        <script type="text/javascript">
$(function () {
//'http://www.highcharts.com/samples/data/jsonp.php?filename=new-intraday.json&callback=?'
//'http://52.0.68.76/appleData.json'
      $.getJSON('http://54.175.177.142/appleData.json', function (data) {

        // create the chart
        $('#container').highcharts('StockChart', {


            title: {
                text: 'AAPL stock price by minute'
            },

            xAxis: {
                gapGridLineWidth: 0
            },

            rangeSelector : {
                buttons : [{
                    type : 'hour',
                    count : 1,
                    text : '1h'
                }, {
                    type : 'day',
                    count : 1,
                    text : '1D'
                }, {
                    type : 'all',
                    count : 1,
                    text : 'All'
                }],
                selected : 1,
                inputEnabled : false
            },

            series : [{
                name : 'AAPL',
                type: 'area',
                data : data,
                gapSize: 5,
                tooltip: {
                    valueDecimals: 2
                },
                fillColor : {
                    linearGradient : {
                        x1: 0,
                        y1: 0,
                        x2: 0,
                        y2: 1
                    },
                    stops : [
                        [0, Highcharts.getOptions().colors[0]],
                        [1, Highcharts.Color(Highcharts.getOptions().colors[0]).setOpacity(0).get('rgba')]
                    ]
                },
                threshold: null
            }]
        });
    });
});

        </script>
    </head>
    <body>
<div id="container" style="height: 400px; min-width: 310px"></div>

<script src="http://code.highcharts.com/stock/highstock.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>
    </body>
</html>

1 个答案:

答案 0 :(得分:1)

行。这个问题是我认为删除的候选人。我已经解决了我的问题.... 我正在打开appleData.json ...但是我将文件上传为appledata.json,即小写'd'。

两个json文件之间的区别是我没有意识到回调();围绕JSON的是一个函数。我需要做的只是取消这个功能,并将其保留为:

[
[1317888000000,372.5101,375,372.2,372.52],
 .
 .
 .
[1318607940000,421.94,422,421.8241,422]
]

这样一个愚蠢的错误!但这就是Noob的方式。