【问题标题】:Cannot get JSON response if DateTime is NULL如果 DateTime 为 NULL,则无法获得 JSON 响应
【发布时间】:2014-05-02 22:18:35
【问题描述】:

我有 sql 数据库。 在 sql 中,列类型是 datetime 可以为空的,但在 c# 中,实体仅定义为 datetime。

如果 dateTime 为 null,则 xml 格式的响应没有问题,但 json 格式的响应会出现问题。如果我将 datetimes 更改为 datetime? 响应,因为 json 格式有效,但它会以不好的方式影响其他实体。

我该如何解决这个问题?谢谢。

【问题讨论】:

  • 在 sql 数据库中,datetime 可以为空你的意思是允许在 datetime 列中为空?
  • 可以,可以为null。
  • 我们如何知道您的其他实体是什么以及它们如何受到可为空的datetime 的影响?
  • 类很多,控件也很多。所以我不能在这里写它们。在 xml 中,我看到日期时间 0001-01-01T00:00:00,当它为空时。但是在json中它给出了错误。这是我的问题。 [WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)] 的 DateTime 必须有一些东西]

标签: c# json wcf datetime svc


【解决方案1】:

我认为问题在于 json 序列化程序将日期发送为 0001-01-01T00:00:00 UTC,当您从位于 UTC 之前的时区的机器上反序列化它时会产生问题。

尝试此线程中的解决方案,看看它是否有帮助: Why can DateTime.MinValue not be serialized in timezones ahead of UTC?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    相关资源
    最近更新 更多