2016-03-28 9 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