我大致跟在this example后面。但必须做一些愚蠢的......谷歌可视化API示例中的“JSON字符串无效”
服务器端的Django视图代码:
data_table = gviz_api.DataTable(description)
data_table.LoadData(data)
json = data_table.ToJSon()
return json
这些都是从PyDev调试变量的值复制粘贴:(使用字符串对每个描述域林
[("sensor","string", "Sensor name"),
("timestamp","string", "Time"),
("value","string", "Sensor value")]
数据:
只是用于测试)描述键入
[['testsensor', '2011-05-09 16:06:43.936000', '22.0'],
['testsensor', '2011-05-09 16:56:23.367000', '23.0']]
JSON(由谷歌API生成):
var json_table = new google.visualization.Table(document.getElementById('dataview'));
var json_data = new google.visualization.DataTable(data, 0.6);
json_table.draw(json_data, {showRowNumber: true});
这导致对构建DataTable对象下面的错误(第二行:
{cols:[{id:'sensor',label:'Sensor name',type:'string'},{id:'timestamp',label:'Time',type:'string'},{id:'value',label:'Sensor value',type:'string'}],rows:[{c:[{v:'testsensor'},{v:'2011-05-09 16:06:43.936000'},{v:'22.0'}]},{c:[{v:'testsensor'},{v:'2011-05-09 16:56:23.367000'},{v:'23.0'}]}]}
JavaScript代码接收JSON客户端侧):
Uncaught Error: Invalid JSON string: {cols:[{id:'sensor',label:'Sensor name',type:'string'},{id:'timestamp',label:'Time',type:'string'},{id:'value',label:'Sensor value',type:'string'}],rows:[{c:[{v:'testsensor'},{v:'2011-05-09 16:06:43.936000'},{v:'22.0'}]},{c:[{v:'testsensor'},{v:'2011-05-09 16:56:23.367000'},{v:'23.0'}]}]}
in default,table.I.js:152
我明白,整个线索是确保th在模式格式匹配数据格式,但这似乎是这种情况。这一定很简单。
eval技巧的作品,谢谢你。结果发现一个问题:http://code.google.com/p/google-visualization-python/issues/detail?id=4 – dgorissen 2011-05-19 10:49:35
FWIW,问题已得到解决:http://code.google .com/p/google-visualization-python/source/detail?r = 16 – Leo 2012-07-06 12:57:07
有同样的问题和eval的作品。 Google应该改变它,以便我们可以直接将JSON传递给DataTable .... – 2012-07-26 10:00:38