【问题标题】:json web service datetime errorjson web服务日期时间错误
【发布时间】:2012-01-11 13:59:18
【问题描述】:

我正在将 json 数据发送到 .net 网络服务,但它引发异常,因为 CreatedDate":"/Date(1326289739524)/" 无法在服务器端转换为日期时间对象。知道如何解决这个?

【问题讨论】:

  • 我猜应该是 DateTime(1326289739524) 而不是 Date
  • 好吧,如果是这样的话,我会遇到更多麻烦,因为脚本不知道对象的内容。它从 web 服务接收到一个对象,内容通过 gui 进行更改,并且全部使用 html 表单和对象内容之间的动态接口(id => 变量名映射)但日期永远不会改变,所以如果 json通过它自己更改对象类型我不知道我将如何修复它..
  • 除非我开始遍历对象并将每个日期更改为等效的日期时间,但这感觉有点混乱。

标签: .net json web-services


【解决方案1】:

如果你能设法从字符串中提取数字部分,那么剩下的就是这样:

DateTime Temp = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);

DateTime MyDateTime = Temp.AddMilliseconds(1326289739524);

【讨论】:

  • 不可能,因为在我的 Web 服务代码开始运行之前引发了异常。
  • 这令人困惑。在您的问题中:“...无法在服务器端转换为日期时间对象” 现在您是说 Web 服务代码没有运行?在哪里抛出异常?包含调用堆栈的异常文本是什么?
  • 我们将使用经典的 asp.net webservice 实现,因此我并不真正处理解析请求的代码,它只是将对象作为参数,并且在方法执行异常之前被抛出。无论如何,我设法通过拦截客户端的日期时间对象并将它们转换为适当的对象来解决它。为了澄清我没有将 json 数据转换为对象的代码,asp.net 为我做了。它需要一个日期时间,但由于客户端发生混乱的事情而无法转换数据。 (部分超出我的控制)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-08
  • 1970-01-01
  • 2017-06-06
  • 1970-01-01
  • 2017-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多