2016-03-28 5 views
0

私はHIGHCHARTSの初心者です。jsonのデータURLを使用してアンドロイドでライブの株価グラフを操作しないでください

私はこの例から始めたい:http://people.canonical.com/~bradf/media/highstock/examples/basic-line/index.htm

$(function() { 
 

 
    $.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.json&callback=?', function(data) { 
 
    // Create the chart 
 
    window.chart = new Highcharts.StockChart({ 
 
     chart: { 
 
     renderTo: 'container' 
 
     }, 
 

 
     rangeSelector: { 
 
     selected: 1 
 
     }, 
 

 
     title: { 
 
     text: 'AAPL Stock Price' 
 
     }, 
 

 
     series: [{ 
 
     name: 'AAPL', 
 
     data: data, 
 
     tooltip: { 
 
      valueDecimals: 2 
 
     } 
 
     }] 
 
    }); 
 
    }); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="http://code.highcharts.com/stock/highstock.js"></script> 
 
<script src="http://code.highcharts.com/stock/modules/exporting.js"></script> 
 

 
<div id="container" style="height: 500px; min-width: 500px"></div>

私は、対応するJSONファイルをダウンロード:(

http://chartapi.finance.yahoo.com/instrument/1.0/PTC/chartdata;type=quote;range=1d/json/

をそして、私はそれをローカルに実行したいです私自身のJSONファイルでテストした後)。しかし、それは動作しません!

例のソースコードを使用していますが、私はちょうどgetJSON行を変更しました。

私はこれを持っている: -

$.getJSON('./data/json/'+ name+'-c.json&callback=?', function(data) { ....... } 

私は問題がcallback.Anyのアイデアから来ていると思いますか?

+0

'callback =?'を 'callback = finance_charts_json_callback'に変更できますか?あなたはJSONPを持っているので、その理由があるかもしれません。また、バックエンドとしていくつかのWebサーバーがあることを確認してください。現代のブラウザーではローカルファイルをロードできません。 –

答えて

0

ハイチャートの正しいフォーマットでデータを取得するためにリンクした例のコードを微調整しました。これが最良の方法であるかどうかはわかりませんが、JSON.stringifyを使用してJSONデータを表示し、必要なフィールドを抽出します(私はタイムスタンプとクローズを使用しました)。コメントの詳細 - これが役立つことを願っています!

$(function() { 
 

 
    // add ?callback=? 
 

 
    $.getJSON('http://chartapi.finance.yahoo.com/instrument/1.0/PTC/chartdata;type=quote;range=1d/json/?callback=?', function(data) { 
 
     // console.log(data.series); 
 
     // console.log(JSON.stringify(data.series)); 
 
     // extract the data you need 
 
     myData = []; 
 
     data.series.forEach(function(item) { 
 
     myData.push([item.Timestamp, item.close]); 
 

 
     }); 
 
     console.log(JSON.stringify(myData)); 
 
     // Create the chart 
 
     window.chart = new Highcharts.StockChart({ 
 
     chart: { 
 
      renderTo: 'container' 
 
     }, 
 

 
     rangeSelector: { 
 
      selected: 1 
 
     }, 
 

 
     title: { 
 
      text: 'AAPL Stock Price' 
 
     }, 
 

 
     series: [{ 
 
      name: 'AAPL', 
 
      // use extracted data 
 
      data: myData, 
 
      tooltip: { 
 
      valueDecimals: 2 
 
      } 
 
     }] 
 
     }); 
 
    }) 
 
    // check for errors 
 
    .done(function() { 
 
     console.log('getJSON request succeeded!'); 
 
    }) 
 
    .fail(function() { 
 
     console.log('getJSON request failed! '); 
 
    }) 
 
    .always(function() { 
 
     console.log('getJSON request ended!'); 
 
    }); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="http://code.highcharts.com/stock/highstock.js"></script> 
 
<script src="http://code.highcharts.com/stock/modules/exporting.js"></script> 
 
<div id="container" style="height: 500px; min-width: 500px"></div>

編集:私はhttps://stackoverflow.com/a/19075640/2314737

// check for errors 
    .done(function() { 
     console.log('getJSON request succeeded!'); 
    }) 
    .fail(function() { 
     console.log('getJSON request failed! '); 
    }) 
    .always(function() { 
     console.log('getJSON request ended!'); 
    }); 
+0

@sushantそれはあなたが必要なものが明確ではない...あなたはエラーメッセージのコンソールをチェックしましたか? – user2314737

+0

私はオンラインのyahoo株グラフが必要ですが、表示されません – sushant

0

のようなエラーメッセージをチェックすることをお勧めしますHighchartsがthisある消費ものと同様のものにご対応JSONフォーマットを操作してください。 。

関連する問題