Newtonsoft.Json序列化字符串-格式化和时间格式问题-程序员宅基地

技术标签: c#  json  

最近C#中需要将实体进行json序列化,使用了Newtonsoft.Json

        public static void TestJson()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("Age", Type.GetType("System.Int32"));
            dt.Columns.Add("Name", Type.GetType("System.String"));
            dt.Columns.Add("Sex", Type.GetType("System.String"));
            dt.Columns.Add("IsMarry", Type.GetType("System.Boolean"));
            dt.Columns.Add("Date", Type.GetType("System.DateTime"));
            for (int i = 0; i < 4; i++)
            {
                DataRow dr = dt.NewRow();
                dr["Age"] = i + 1;
                dr["Name"] = "Name" + i;
                dr["Sex"] = i % 2 == 0 ? "男" : "女";
                dr["IsMarry"] = i % 2 > 0 ? true : false;
                dr["Date"] = DateTime.Now;
                dt.Rows.Add(dr);
            }


            Console.WriteLine(JsonConvert.SerializeObject(dt));

        }

但是序列化出来的Json字符串有两个问题

1.没有进行格式化,对使用人员不友好;

2.时间字段形式为数字形式;

 

 

查了一下网上对于时间字段建议先转换成字符串,再json序列化,但是发现可以通过自定义时间格式进行json序列化

解决方案如下:

 

IsoDateTimeConverter timeFormat = new IsoDateTimeConverter();
            timeFormat.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";


            Console.WriteLine(JsonConvert.SerializeObject(dt, Formatting.Indented, timeFormat));

这样结果如下:完美解决问题

 


---------------------
作者:IT菜鸟民工
来源:CSDN
原文:https://blog.csdn.net/wlphlj/article/details/51982866
版权声明:本文为博主原创文章,转载请附上博文链接!

 

转载于:https://www.cnblogs.com/asdyzh/p/9826285.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30463341/article/details/95013631

智能推荐

openrasp-v8 包编译_为编译所依赖的jni模块-程序员宅基地

文章浏览阅读842次。本文为百度openrasp的v8引擎包编译说明,只尝试过Java版本。为了保证最大兼容性,建议使用 JDK 6 进行编译。文件 jdk-6u45-linux-x64-rpm.bin。执行 chmod +x 后像执行脚本一样执行安装便可以。安装后文件位置为 /usr/java/jdk1.6.0_45,需在 /etc/profile中配置JAVA_HOME=/usr/java/jdk1.6.0_45JRE_HOME=/usr/java/jdk1.6.0_45CLASS_PATH=.:$JAVA_为编译所依赖的jni模块

php2个按钮并排自适应,彻底解决Button在IE6、7下的自适应宽度问题-程序员宅基地

文章浏览阅读257次。写一个Button,有两种方式:其一,直接button标签;其二,input type=”button”。不管哪种方式,Button的宽度在IE6、7下总是不能完美,接下来我们演示一个普通的Button,你可以用IE6或者IE7浏览器看看其显示宽度,然后对比Chrome或者IE8等浏览器,你会发现Bug的所在。1、一个普通的Button:可以很直接的看到Button的两边有空隙,当然,这个空隙是无..._两个button并排

触摸板把计算机从休眠状态唤醒,win10笔记本盒盖唤醒后触摸板失灵的处理方法...-程序员宅基地

文章浏览阅读1.8k次。现在,很多笔记本电脑都预装了win10正式版系统,不过用户在使用新系统过程中也会遇到一些问题。比如,一些朋友反馈自己将笔记本屏幕合上后重新打开登录到系统触摸板就失灵无法使用,该怎么办呢?其实,该问题一般是由于触摸板驱动程序存在缺陷导致的,我们只需重新下载安装最新版的触摸板驱动即可解决。下面,就随PConline小编一起看看具体操作步骤!推荐: win10系统官方下载具体如下:1、以联想笔记本为例,..._win10休眠后触摸屏唤醒

华为Taishan服务器安装UOS操作系统_failure reading sector-程序员宅基地

文章浏览阅读3.6k次,点赞3次,收藏9次。今天2020.12.18折腾了一遍华为Taishan服务器重装UOS20操作系统,没经验,一堆问题,逐个排查解决的。做个记录,以免下次再坑。1、光驱引导。最开始,选择光驱引导安装,提示Failure reading sector xxxxxx from ‘cd0’就是说cd0上找不到引导嘛。本以为是启动盘做的不对,或者操作系统不对,但最后发现是光驱不行。我一开始用了自己笔记本拆机的光驱,换了个正经光驱后,问题消失。2、 硬盘问题。这台服务器是其他同事使用的,我们借来使用。所以为了保留数_failure reading sector

php foreach map,array_walk, array_map, foreach 性能测试比较-程序员宅基地

文章浏览阅读255次。$chatbar_admin_list = array_combine(range(100000, 199999), range(200000, 299999));$key_list = array_keys($chatbar_admin_list);$start1_time = microtime_float();$chatbar_new_admin_list = array();array_w..._php用foreach会比array_map卡

Linux内核配置(12)_set system time from rtc on startup and resume-程序员宅基地

文章浏览阅读3.4k次。--- Real TimeClock[] Set system time from RTCon startup and resume系统启动时使用从指定的RTC设备中读取的时间来设定系统时间,通常这将有助于避免不必要的文件系统检测程序(fsck)的运行推荐Y(rtc0) RTC used to set thesystem time (NEW)[] RTC debugsuppo_set system time from rtc on startup and resume

随便推点

篮球服务器维修,NBA 2K19国服延期网友吐槽连不上服务器就像你进不了NBA一样真实...-程序员宅基地

文章浏览阅读460次。相信喜欢篮球是许多男孩子的天性,然而并不是谁都有时间和精力去操场体验女生的惊呼声的。这或许会成为一些男孩子的遗憾,然而新上市的《NBA 2K19》却可以帮助他们体验篮球带来的热血体验。《NBA 2K》今年就已经20周年了,而这一次的作品,将会是有史以来能够给人带来最最真实的体验的一代游戏。然而国服不能上线。网友网友吐槽连不上服务器就像你进不了NBA一样真实其实从预告片就能够看出这确实是篮球比赛场上..._2k19sports的服务器4b538e50

springboot项目搭建(idea版)_系统idea开发开发好之后怎么可以看出它是基于ssm或者是spring boot的-程序员宅基地

文章浏览阅读7.9k次,点赞6次,收藏35次。springboot项目已经渐渐替代了原有的ssm开发,下面让我们来简单的搭建一个springboot项目,并测试一个websocket示例;第一步:创建spingboot项目打开idea,点击左上角的File菜单;File&gt;New&gt;Project,弹框如下,选择Spring Initializr;一直默认点击next,直至完成即可,当然在其中的几步中,也可以做些自己的配置;..._系统idea开发开发好之后怎么可以看出它是基于ssm或者是spring boot的

CSS控制图片和文字在同一行显示且对齐的3种方法_css里图片和文字怎么显示一行-程序员宅基地

文章浏览阅读5.2w次。1、在css中给div添加上“vertical-align:middle”属性 找回密码 css代码: 复制代码代码如下:#denglu *{ vertical-align:middle; /* 居中对齐, */ font-size:14px; } 2、把图片设置为背景图片如果我们的图片_css里图片和文字怎么显示一行

react--localStorage存储_react localstorage存储-程序员宅基地

文章浏览阅读490次。项目结构如下路由文件如下import React from 'react';import {BrowserRouter as Router,Route} from 'react-router-dom';import MainPage from './mainPage'import City from './city'export default class Main exte..._react localstorage存储

全面理解解析line-height: 150%和line-height: 1.5em和line-height: 1.5rem和line-height: 1.5的区别-程序员宅基地

文章浏览阅读4.4k次。欢迎来到Altaba的博客 2017年9月7日很开心今天能抽点时间解析这个CSS样式 行高的问题,相信行高如果设置具体的大小是很好确定的,当设置为上面这四个相对单位的时候,可能就有点凌乱没有对比就没有区别,没有求真就没有进步,本人致力于为大家提供最准确的前端技术解答先上代码: Title div div{ d_height: 1.5rem

PostgreSQL pg_dump&psql 数据的备份与恢复_input file appears to be a text format dump. pleas-程序员宅基地

文章浏览阅读2.5k次。参考:http://blog.chinaunix.net/uid-354915-id-3504632.html[root@localhost postgres-9.3.5]# pg_dump --helppg_dump dumps a database as a text file or to other formats.Usage: pg_dump [OPTION].._input file appears to be a text format dump. please use psql.