【问题标题】:Returning JSON file with cURL to use data in a HighCharts stock chart返回带有 cURL 的 JSON 文件以使用 HighCharts 股票图表中的数据
【发布时间】:2016-05-15 14:33:42
【问题描述】:

我正在尝试使用 cURL 从不同的服务器将免费的 JSON 油价数据源导入 HighCharts StockChart。

我目前的代码如下:

<div id="container" style="width:100%; height:400px;">      
  <?php

    $ch = curl_init('https://www.quandl.com/api/v1/datasets/CHRIS/ICE_B1.json');
    $data = curl_exec($ch);
    curl_close($ch);

    ?>  

  <script>      
    $(function () {

      $.getJSON('$data', function (data) {
        // Create the chart
        $('#container').highcharts('StockChart', {
          rangeSelector : {
            selected : 1
          },
          title : {
            text : description
          },
          series : [{
            name : name
            data : data
          }
        }]
      });

    });
    });
  </script>
</div>

但这只是将原始 JSON 转储到我的浏览器窗口中,而不是制作漂亮的图表。

任何帮助将不胜感激!

【问题讨论】:

  • 检查 javascript 中的右括号,它们没有对齐

标签: javascript php json curl highcharts


【解决方案1】:

你试图同时使用 PHP CURL 和 jQuery getJSON,我觉得你有点困惑。

CURL 由服务器执行,通过这种方式,它只在获得结果时打印结果,它甚至不会将结果存储在 $data 中,因为为此您需要初始化 curl 以等待 @987654325 的响应@。如果它将结果保存在 PHP 变量 $data 中,则此变量在您的 Javascript 中不可用,因为 javascript 是在客户端机器上执行的,而不是在服务器上执行的。要解决这个问题,你可以这样做

<php echo "<script> data = ".$data."; </script>"; ?>

这不是很漂亮,但会起作用。但是它仍然无法与您的 getJSON 函数一起使用,因为此函数需要一个 url 来获取 json 数据,并且不希望 json 数据作为参数..

简而言之,你可以只使用下面的getJSON 函数并删除 PHP 代码,它应该可以工作,我想这就是你想要的。

 $(function () {

        $.getJSON('https://www.quandl.com/api/v1/datasets/CHRIS/ICE_B1.json', function (data) {
            // Create the chart
            $('#container').highcharts('StockChart', {


                rangeSelector : {
                    selected : 1
                },

                title : {
                    text : description
                },

                series : [{
                    name : name
                    data : data
                }]
            });
        });

    });

因为getJSON 与您尝试使用curl 函数所做的完全一样:从您提供的url 中获取json 数据并将其存储在一个名为data 的变量中。

【讨论】:

  • 是的,我很困惑!我试图使用 cURL,因为 HighCharts 说 JSON 不能跨域 highcharts.com/docs/working-with-data/… 。我尝试了您的两种解决方案,但我得到的只是一无所获。没有错误,也没有漂亮的图表:(
  • 啊在这种情况下,将CURLOPT_RETURNTRANSFER 行和我在答案中写的 echo 行都放在答案中,并删除带有$.getJSON 的行。
  • 谢谢巴斯。我一直在修补和更新我的代码。正如您最初建议的那样,我认为 cURL 最终有点像边秀!但我还是有点挣扎。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多