用c#DateTime提供d3.js

时间:2013-08-19 08:07:03

标签: json d3.js

我正在尝试使用从MVC控制器获取的数据来提供d3.js,并且我在努力传递DateTimes。

数据本身很简单,我有一个对象列表“事件”,“事件”有一个属性DateTime。我的目标是在折线图中显示同一天的事件数与天数。

传递给d3.js的json格式为:

[{"Count":3,"Datum":"\/Date(1376604000000)\/"},{"Count":2,"Datum":"\/Date(1376690400000)\/"}]

我现在尝试了一段时间,但无法弄清楚如何解析这个日期,以便d3.js可以使用它。在我找到的另一个帖子上

var date = new Date(parseInt(jsonDate.substr(6)));

可以构造“Datum”字符串之外的日期。但是如何将它集成到d3.js的设置中呢?


编辑/解决方案感谢Lars

如上所述返回JSON的Controller可能如下所示:

public JsonResult results()
{
    var results = from a in db.results
              group a by new { y = a.Begin.Year, m = a.Begin.Month, d = a.Begin.Day }
              into g
              select new
              {
                  Count = g.Count(),
                  Datum = g.Select(d => d.Begin).FirstOrDefault()
              };
    return Json(results, JsonRequestBehavior.AllowGet);
}

设为d3的数据源:

d3.json("http://localhost:50123/results", function (error, data) {
    data.forEach(function (d) {
        d.Datum = new Date(parseInt(d.Datum.substr(6)));;
        d.Count = d.Count;
    });

稍微调整xAx:

var xAxis = d3.svg.axis()
    .scale(x)
    .ticks(d3.time.days, 1)
    .orient("bottom");

0 个答案:

没有答案