我尝试使用以下JavaScript创建Google Chart(表格图表):
<script>
function drawChart() {
var options = {
width: 700
};
$.getJSON('/LifeListComparison/GetComparison', null, function (jsonData) {
}).success(function (jsonData) {
data = new google.visualization.DataTable(jsonData);
chart = new google.visualization.Table(document.getElementById('GoogleTable'));
chart.draw(data, options);
}).fail(function (jqXHR, textStatus, errorThrown) {
alert('Error: ' + textStatus + ' ' + errorThrown);
});
}
google.load('visualization', '1.0', {
'packages': ['table'],
'callback': drawChart
});
</script>
JS代码工作正常,成功函数被调用。但是,Google Charts告诉我从C#服务方法返回的JSON无效。 JSON如下:
{
"cols": [
{"type": "string" ,"label": "Common Name" },
{"type": "string" ,"label": "Scientific Name" },
{"type": "number" ,"label": "Sort Order" },
{"type": "number" ,"label": "Period 1" },
{"type": "number" ,"label": "Period 2" },
{"type": "number" ,"label": "Period 3" },
{"type": "number" ,"label": "Period 4" },
{"type": "number" ,"label": "Period 5" }
],
"rows" : [
{"c" : [{"v": "American Coot"}, {"v": "Fulica americana"}, {"v": 3615}, {"v": True}, {"v": True}, {"v": False}, {"v": False}, {"v": False}]},
{"c" : [{"v": "American Crow"}, {"v": "Corvus brachyrhynchos"}, {"v": 19073}, {"v": True}, {"v": False}, {"v": False}, {"v": False}, {"v": False}]}
]
}
JSON对我来说看起来非常有效,所以我必须忽略一些东西。
答案 0 :(得分:1)
JavaScript区分大小写,“v”的值必须小写true
和false
,而不是现在的True
和False
。您是否在C#中手动序列化JSON? JSONLint是你的朋友。
答案 1 :(得分:1)
只需使用JSON验证工具,例如http://jsonlint.com/ ......它必须比尝试发现错误更快。
布尔应该小一些。
Parse error on line 49:
... "v": True
-----------------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['