2016-03-28 19 views
0

我是HIGHCHARTS的初學者。無法在android中使用json數據工作生活股票圖

我想從這個例子開始: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,所以這可能是理由。另外,確保你有一些網絡服務器作爲後端 - 現代瀏覽器不允許加載本地文件。 –

回答

0

我調整了您鏈接的示例中的代碼,以獲取適合highchart的正確格式的數據。不知道這是做到這一點的最佳方式,但您可以使用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

我需要在線雅虎股票圖..但不顯示 – sushant

0

請操縱你的相應JSON格式類似什麼Highcharts消耗是this