C# WebAPI中DateTime类型字段在使用微软自带的方法转json格式后默认含T的解决办法...
本人新手,在.Net中写WebAPI的时候,当接口返回的json数据含有日期时间类型的字段时,总是在日期和时间中夹着一个字母T;微软这么设置可能有其内在的初衷,但是对于我来说,这样的格式不是很方便,前端同学展示出来的时候也总是要记得处理一下显示格式。曾经问过部门内一位老鸟,老鸟的反应告诉我这在微软的框架下做json转换是不可避免的;当初一度放弃了这个问题。后来突然冷静分析了一下,微软不可能做的这么绝的吧。
从博客园里找到了一篇亲测有效的文章,有需要的可以去参考下。本文主要作为自己学习过程的问题记录,以加深自己的理解。
我的开发环境是.Net Framework 4.7.1下的WebAPI。直接调的ApiController自带的Ok(object content)方法,日期时间类型的格式问题如上描述。
1、框架在ApiController里面定义了很多现成的成员方法和属性。其中几个如下:
我所使用的就是最下面的方法。
2、其实,Json<T>方法是可以直接调用返回json数据给前端的;仔细查看发现,该方法的第一个重载方法有三个参数,第二个参数就是json序列化的相关设置。这给我们一个提示:我们可以自行调用Json<T>方法,序列化相关的设置参数根据自己的需要传一个Newtonsoft.Json.JsonSerializerSettings类型的对象过去即可。
3、但是,我是直接调用的框架的Ok方法,这个方法在框架内部是如何转json的我还不清楚(先挖个坑,日后明白了来填);也就是我并没有任何显示给序列化参数赋值的行为,那么可以推测,.net是不是从全局静态配置中读的呢?通过GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings拿到这个json序列化设置参数,据上面那位仁兄跟踪发现,这个值默认是"yyyy'-'MM'-'dd'T'HH':'mm':'ss"。那么原因显而易见了,.net取这个量调的Json<T>方法无疑了。或者说.Net下的Ok方法也是间接调用的这个方法实现的转json。
4、在WebApiConfig文件中重置GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings为自定义的时间格式即可。
转载于:https://www.cnblogs.com/lonelyxmas/p/10347510.html
C# WebAPI中DateTime类型字段在使用微软自带的方法转json格式后默认含T的解决办法...相关推荐
- mysql数据库插入datetime_往MySQL数据库datetime类型字段中插入数据库的当前时间
代码: StringBuilder sb = new StringBuilder(); sb.append(" insert into uosdetailfile ("); sb. ...
- 解决Entity Framework中DateTime类型字段异常
从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值 具体的错误原因是:C#中的DateTime类型比SqlServer中的datetime范围大.SqlServe ...
- SQL server中DateTime类型字段如何赋值零?
.net 1.1 不支持Sql Server datetime字段为空的情况 .net 2.0 开始支持Sql Server datetime字段为空 在不支持datetime为空的情况下, Sq ...
- mysql与mssql中datetime类型字段问题_excel数据存入sqlserver过程中,遇到Datetime的格式问题。...
先讲一下我实现的大致思路: 1 读取excel数据,赋值到datatable中,然后在页面上显示 细节描述:有一些列是存到数据库时要是datetime格式的,我在赋值到datatable时也是做 如下 ...
- python mysql写入速度加快_解决python写入mysql中datetime类型遇到的问题
解决python写入mysql中datetime类型遇到的问题 发布时间:2020-08-31 16:46:47 来源:脚本之家 阅读:89 作者:WilliamDescant 刚开始使用python ...
- python mysql驱动写入datetime类型的数据_解决python写入mysql中datetime类型遇到的问题...
刚开始使用python,还不太熟练,遇到一个datetime数据类型的问题: 在mysql数据库中,有一个datetime类型的字段用于存储记录的日期时间值.python程序中有对应的一个dateti ...
- SQLServer中Datetime类型转换为UnixTimestamp
SQLServer中Datetime类型转换为UnixTimestamp Datetime类型转换为UnixTimestamp SELECT DATEDIFF(SECOND,{d '1970-01-0 ...
- 解决Asp.net Mvc返回JsonResult中DateTime类型数据格式的问题
问题背景: 在使用asp.net mvc 结合jquery esayui做一个系统,但是在使用使用this.json方法直接返回一个json对象,在列表中显示时发现datetime类型的数据在转为字符 ...
- mysql java 获取周_Java中获取Mysql中datetime类型的数据
由于Java中的日期类型只有Date类型,而Mysql中即有date型,又有datetime型,当我们想要在java中获取Mysql中datetime类型的数据或向Mysql数据库中插入datetim ...
最新文章
- 广联达2018模板算量步骤_老师傅带你学造价,广联达GTJ2018图文详解,小白也能学会的软件...
- 皮一皮:他为我承受了太多太多...
- 找出数组中被其他元素整除的元素_「每日一题」数组中重复的数字
- 在Spring MVC中使用注解的方式校验RequestParams
- Nhibernate 3.0 cookbook学习笔记 配置与架构
- json字符串与json对象之间的转换
- 双系统win+ubuntu无法访问win的盘符
- macos系统镜像iso_Windows10操作系统iso镜像、微软正版软件下载站:MSDN,我告诉你...
- DirectX支配游戏 历代GPU架构全解析
- java 生成pdf文件加密
- Failed to introspect Class from LaunchedURLClassLoader
- 贝塞尔曲线与贝塞尔曲面
- ipad中的神级笔记软件 Notability的使用方法
- [简洁版]youtube-dl下载命令
- 设计模式 - 创建型设计模式小结
- \u, \x,0x区别
- TextView设置MaxLength
- 自动驾驶改变未来1~3
- 真正解决layer弹层遮罩挡住窗体的问题
- macOS Ventura 13 Beta3(22A5295i) 官方dmg镜像