最近遇到一个妖怪问题,WCF Rest Service 以XML格式就可以工作,Json格式就出异常。

调试之后发现,是时间字段导致。如果你的类里面有DateTime字段,没有赋值,那么默认值是DateTime.MinValue.

这时DataContractJsonSerializer类就会抛异常,具体又一下代码导致。如果你所在的时区不是GMT+1 就会异常。

据说在WebAPI里面修复了这个问题,看来有必要用webapi来代替 Rest Service。

if (value.Kind != DateTimeKind.Utc)
{long num = value.Ticks - TimeZone.CurrentTimeZone.GetUtcOffset(value).Ticks;if ((num > DateTime.MaxValue.Ticks) || (num < DateTime.MinValue.Ticks)){throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(SR.GetString("JsonDateTimeOutOfRange"), new ArgumentOutOfRangeException("value")));}
}

原因:http://stackoverflow.com/questions/4025851/why-can-datetime-minvalue-not-be-serialized-in-timezones-ahead-of-utc

方案:http://blog.benpowell.co.uk/2011/09/wcf-json-serialization-error-with.html

转载于:https://www.cnblogs.com/zhangjiang/archive/2013/02/22/2922987.html

Json序列化空时间字段出异常相关推荐

  1. MVC web api 返回JSON的几种方式,Newtonsoft.Json序列化日期时间去T的几种方式

    MVC web api 返回JSON的几种方式,Newtonsoft.Json序列化日期时间去T的几种方式 2015-01-18 00:11 https://www.muhanxue.com/essa ...

  2. php json字符串序列化,JSON序列化与反序列化实现方法(附代码)

    这次给大家带来JSON序列化与反序列化实现方法(附代码),JSON序列化与反序列化实现的注意事项有哪些,下面就是实战案例,一起来看一下. 一.JSON简介 JSON(JavaScript Object ...

  3. .NET 自定义Json序列化时间格式

    .NET 自定义Json序列化时间格式 Intro 和 JAVA 项目组对接,他们的接口返回的数据是一个json字符串,里面的时间有的是Unix时间戳,有的是string类型,有的还是空,默认序列化规 ...

  4. xml 和 json 序列化忽略字段

    xml 和 json 序列化忽略字段: @JsonIgnore@XmlTransient 转载于:https://www.cnblogs.com/xiluhua/p/9192577.html

  5. java对象Json序列化,修改Json序列化后字段名

    @JSONField(name = "XXX") 记一次第三方请求,请求参数首字母大写的解决方法. 定义一个User类 import lombok.Data;@Data publi ...

  6. Net深入实战系列—JSON序列化那点事儿

    序 当前主流的序列化JSON字符串主要有两种方式:JavaScriptSerializer及Json.net(Nuget标识:Newtonsoft.Json).JavaScriptSerializer ...

  7. Redis学习篇3_事务及其监控(锁)、Jedis、SpringBoot整合Redis、RedisTemplate的json序列化、RedisUtil工具类

    目录 事务及其监控(锁) Jedis SpringBoot整合Redis RedisTemplate 默认RedisTemplate来源 关于中文序列化问题 RedisUtil工具类 一.事务及其监控 ...

  8. JAVA——json序列化错误[hibernateLazyInitializer,handler,fieldHandler]解决方案

    问题描述 (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain ...

  9. Django,再谈json序列化

    我们知道JSON字符串是目前流行的数据交换格式,在pyhton中我们通过json模块,将常用的数据类型转化为json字符串.但是,json支持转化的数据类型是有限的. 比如,我们通过ORM从数据库查询 ...

最新文章

  1. crontab命令简介
  2. tiny core linux 编译,tinycore linux使用
  3. 谈自由,ASP.NET Core才是未来?
  4. hdu1873 看病要排队-优先队列
  5. Codeforces Round #112 (Div. 2) E. Compatible Numbers sosdp
  6. 马云发情人节寄语:AI和算法是算不清楚婚姻的
  7. python创建矩阵_python中Numpy的属性与创建矩阵
  8. 9102,用原生js造一个轮播组件
  9. Struts2 中继承ActionSupport类
  10. (2)安装宝塔与docker及docker镜像下载加速
  11. bootstrap bootbox 属性及用法
  12. 生猪价格matlab,猪肉价格的数学模型.doc
  13. Web.17.EL表达式JSTL标签的使用
  14. Anaconda入门:安装及包与环境的管理(conda命令)
  15. 64qam用matlab实现 使用matlab进行64qam调制,如何添加星座图程序?
  16. python基础 -23- 模块(random,chardet,os,sys,copy,time,datetime,pytz,pickle,json,MD5,SHA-1,shutil,re等)
  17. MBA联考逻辑真题1
  18. Android 消息推送OnePush
  19. 能够免费做商业站点的CMS讨论
  20. centos6关闭防火墙

热门文章

  1. 7-19 谁先倒 (15 分)
  2. idea 使用maven 整合ssm框架
  3. 怎么实现hover_写CSS动效的常用套路(附demo的效果实现与源码)
  4. mysql 左连接 和全连接_mysql左连接,右连接,内连,全连
  5. DevExpress v18.2版本亮点——Office File API 篇
  6. nginx配置跨域、gzip加速、代理详细讲解
  7. 602. Friend Requests II: Who Has Most Friend?
  8. Nginx | Outline
  9. OpenWrt的UCI系统
  10. 用ASP.NET编写一个在线RSS新闻聚合器