好的,这比预期的难得多,但我确实有一个解决方案。
我采取的方法是要求ajax请求中的自定义数据类型,然后实现自定义转换器。
我使用我的JSON日期的全格式的首先是现在日期(“YYYY-MM-DD”),最初的例子看起来像:
{
"columns": [
["date", "Date"],
["number", "active_users"],
],
"rows": [
["date(2012-09-28)", 120, 98, 60],
["date(2012-09-29)", 127, 107, 63]
]
}
我然后注册一个转换器将文本转换为名为json_with_dates的自定义数据类型。正则表达式用于搜索日期格式并用语句替换它们以创建日期对象。然后使用Eval构造json。
jQuery.ajaxSetup({
converters: {
"text json_with_dates": function(text) {
var with_dates = text.replace(/\"date\(([^)]*)\)\"/g, function(a, date){
var dateParts = date.split("-");
return "new Date(" + dateParts[0] + "," + dateParts[1] + "," + dateParts[2] + ")";
});
var converted = eval("(" + with_dates + ")");
return converted;
}
}
});
我然后进行自定义数据类型Ajax请求:
$.ajax({
url: div.data('chart'),
dataType: 'json_with_dates',
success: function(data_including_dates){
console.log("win!");
}
});