J'ai une petite application dansante qui sert quelques HTML (y compris le javascript pour appeler l'API google charts) et pour d'autres URLs interroge une base de données et renvoie les données en JSON encodé dans un formulaire que vous pouvez passer à google.visualization.DataTable. Le javascript interroge l'application Dancer pour obtenir les données JSON puis les transmet à l'API google charts - Une version simplifiée est la suivante :
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
google.load('visualization', '1.0', {'packages':['corechart']});
google.setOnLoadCallback(initialize);
function initialize() {
var res = $.ajax({
url: "/data/2",
dataType:"json",
async: false,
data: "{}",
contentType: "application/json",
error: function(jqXHR, textStatus, errorThrown) {
alert('textStatus ' + textStatus);
alert('errorThrown ' + errorThrown);
}
});
jsonData = res.responseText;
var data = new google.visualization.DataTable(jsonData);
var chart = new google.visualization.BarChart(document.getElementById('chart_div'));
chart.draw(data, {width: 400, height: 240});
}
</script>
Le problème est que certaines des données renvoyées par Perl contiennent des dates/horodatages et que le type doit donc être défini sur "datetime" :
{"rows":[{"c":[{"v":"WHAT_CAN_I_PUT_HERE"},{"v":"2095"}]}],"cols":[{"type":"datetime","label":"DTU"},{"type":"number","label":"COUNT"}]}
En Javascript, vous pouvez créer une date à transmettre à l'API de google charts :
new Date(2012, 1, 08, 09, 32, 0)
Comment puis-je envoyer une date encodée en JSON depuis Perl de sorte que l'API google charts la comprenne ? Si ce n'est pas le cas, quelles autres options s'offrent à moi ?