Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何提取单独的JSON文件';创建谷歌折线图需要哪些数据?_Javascript_Php_Json_Charts_Google Visualization - Fatal编程技术网

Javascript 如何提取单独的JSON文件';创建谷歌折线图需要哪些数据?

Javascript 如何提取单独的JSON文件';创建谷歌折线图需要哪些数据?,javascript,php,json,charts,google-visualization,Javascript,Php,Json,Charts,Google Visualization,我有一个JSON文件: [{"date": "2014-01-01","value": 190000000},{"date": "2014-01-02","value": 190379978},{"date": "2014-01-03","value": 90493749},{"date": "2014-01-04","value": 190785250}] 它可以扩展。我想通过使用以下代码提取JSON数据来创建google折线图: <script src="https://ajax.g

我有一个JSON文件:

[{"date": "2014-01-01","value": 190000000},{"date": "2014-01-02","value": 190379978},{"date": "2014-01-03","value": 90493749},{"date": "2014-01-04","value": 190785250}]
它可以扩展。我想通过使用以下代码提取JSON数据来创建google折线图:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
  google.charts.load("current", {packages:["corechart"]});      
  google.charts.setOnLoadCallback(line_chart);
function line_chart()
  {
        var jsonData = $.ajax({
        url: 'getdata.php',
        dataType:"json",
        async: false,
        success: function(jsonData)
         {
            var options =
            {
               legend: 'none',
               hAxis: { minValue: 0, maxValue: 30 },
               curveType: 'function',
               pointSize: 7,
               dataOpacity: 0.3
            };
            var data = new google.visualization.arrayToDataTable(jsonData);
            var chart = new google.visualization.LineChart(document.getElementById('linechart_div'));
                     chart.draw(data, {width: 600, height: 400});                     
         }  
       }).responseText;      
  }
</script>

load(“当前”{packages:[“corechart”]});
setOnLoadCallback(折线图);
功能线图()
{
var jsonData=$.ajax({
url:'getdata.php',
数据类型:“json”,
async:false,
成功:函数(jsonData)
{
var期权=
{
图例:“无”,
hAxis:{minValue:0,maxValue:30},
curveType:'函数',
点数:7,
数据不透明度:0.3
};
var data=新的google.visualization.arrayToDataTable(jsonData);
var chart=new google.visualization.LineChart(document.getElementById('LineChart_div'));
绘制图表(数据,{宽度:600,高度:400});
}  
}).responseText;
}
我的getdata.php代码是:

<?php 
print test();
function test() {
    $jsonurl = 'data.json';
    $json = file_get_contents($jsonurl);
    echo $obj;
}
?>


在getdata.php期间,所有JSON数据都转储到一个数组中。但这张图表还没有形成。如何创建折线图?我的代码有什么问题?请提供帮助。

使用
arrayToDataTable

数组必须是具有值的简单数组,没有泛型对象,例如

[["2014-01-01", 190000000], ["2014-01-02", 190379978], ...]
如果使用json,那么它必须在

这也行

[[{v: "2014-01-01"}, {v: 190000000}], [{v: "2014-01-02"}, {v: 190379978}], ...]

因此,如果问题中的数据无法更改为匹配,
然后需要一个简单的例程来为google转换数据

请参阅以下工作片段,数据在
fail
回调中硬编码,
因为
“getdata.php”
在这里不可用

google.charts.load('current'{
回调:折线图,
软件包:['corechart']
});
功能线图(){
$.ajax({
url:'getdata.php',
数据类型:“json”
}).完成(
绘制图表
).fail(函数(jqXHR,textStatus){
//console.log(textStatus);
//要测试json数据,请在getdata.php可用时删除
绘制图表([{“日期”:“2014-01-01”,“价值”:190000000},{“日期”:“2014-01-02”,“价值”:190379978},{“日期”:“2014-01-03”,“价值”:90493749},{“日期”:“2014-01-04”,“价值”:190785250});
});
功能图(jsonData){
var data=new google.visualization.DataTable();
data.addColumn('string','Date');
data.addColumn('number','Value');
$.each(jsonData,函数(i,行){
data.addRow([
行。日期,
行。值
]);
});
变量选项={
图例:“无”,
哈克斯:{
最小值:0,
最大值:30
},
curveType:'函数',
点数:7,
数据不透明度:0.3,
宽度:600,
身高:400
};
var chart=new google.visualization.LineChart(document.getElementById('LineChart_div'));
图表绘制(数据、选项);
}
}


为什么要使用
var\u dump()
?结果是无效的json,直接回显
$json
变量。@jeroen。。。我也尝试不使用var_dump()。但它不起作用