我尝试从json字符串生成甘特图,我将Json字符串解析为Json对象时遇到了奇怪的问题。
我有变量myString
,json字符串看起来像这样:
{"c": [{"v": "496"}, {"v": "Task name 1"}, {"v": "9, "}, {"v": "Date(2018,6, 19)"}, {"v": "Date(2018, 6, 21)"}, {"v": null}, {"v": 100}, {"v": null}]}
使用var jsonData = JSON.parse(myString);
值后:"Date(2018,6, 19)"
和"Date(2018, 6, 21)"
更改为:"Date(2018,7, 19)"
和"Date(2018, 7, 21)"
我不知道我的代码有什么问题。 我的完整代码:
$.ajax({
type: "GET",
url: URL,
data: data,
contentType: "application/json; charset=utf-8",
success: function (response) {
console.log(response['chart_data']);
var jsonData = JSON.parse(response['chart_data']);
console.log(jsonData);
var chart_height=jsonData["rows"].length;
google.charts.load('current', {'packages': ['gantt']});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = new google.visualization.DataTable(jsonData);
var options = {
width: document.getElementById("task_list").offsetWidth,
height:30*chart_height,
gantt: {
trackHeight: 30
}
};
var chart = new google.visualization.Gantt(document.getElementById('chart_div'));
chart.draw(data, options);
}
}
});
解决方案:
感谢user1531038在解析时执行了新的Date()函数,而Date函数从0到11计数了几个月。