【问题标题】:ASP.NET WebApi DateTimeOffset serialize to Json/JavaScript (angular2)ASP.NET WebApi DateTimeOffset 序列化为 Json/JavaScript (angular2)
【发布时间】:2016-04-26 15:08:02
【问题描述】:

我没有找到将 DateTimeOffset 值传递给 JavaScript (angular2) 的好方法。 我正在使用 WebApi (5.2.3) 和 angular2。在电线上,我看到日期如下:

RecordModifiedAt : "2016-03-08T17:27:11.9975483+01:00"

JavaScript/angular2 无法将其识别为有效的日期时间值。

我确实有选择,但我应该往哪个方向走:

  • 服务器端:Newtonsoft.Json, ...
  • 客户端:angular2,...
  • 其他?

非常感谢您的帮助!

【问题讨论】:

  • 但是如果你使用new Date("2016-03-08T17:27:11.9975483+01:00"),你会在 JavaScript 中得到一个有效的日期对象,并带有正确的时间和日期
  • 感谢 PierreDuc。有关更多信息,请参阅答案。

标签: javascript asp.net json asp.net-web-api angular


【解决方案1】:

感谢 PierreDuc 的反馈,我已经玩过,我得出了以下结论:

由于 JSON 不支持 Date 数据类型,我假设必须在客户端进行转换。我使用以下“模式”(参见http://codegur.com/36681078/angular-2-date-deserialization):

getTags() {
    return this.http.get('/api/tag/getAll')
        .map((response: Response) => this.convertData(response));
}

private convertData(response: Response) {
    var data = response.json() || [];
    data.forEach((d) => {
        // Convert to a Date datatype
        d.RecordModifiedAt = new Date(d.RecordModifiedAt);
    });
    return data;
}

【讨论】:

    猜你喜欢
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多