我大致如下这个例子 http://code.google.com/apis/chart/interactive/docs/dev/gviz_api_lib.html#tojsonexample。但一定是在做一些愚蠢的事情......
服务器端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")]
data:
[['testsensor', '2011-05-09 16:06:43.936000', '22.0'],
['testsensor', '2011-05-09 16:56:23.367000', '23.0']]
json(由google api生成):
{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'}]}]}
接收json的客户端javascript代码:
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 对象时出现以下错误(第二行):
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
我知道整个线索是确保架构格式与数据格式匹配,但情况似乎确实如此。这一定是简单的事情。