Javascript 如何提取单独的JSON文件';创建谷歌折线图需要哪些数据?
我有一个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
[{"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()。但它不起作用