【发布时间】:2016-07-22 20:52:17
【问题描述】:
使用Newtonsoft.Json 将 DataTable 序列化为 Json 时遇到问题。这是简化代码:
using System;
using System.Data;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
class Program
{
static void Main(string[] args)
{
DataTable dt = new DataTable();
dt.Columns.Add("Prop", typeof(DateTime));
dt.Rows.Add(DateTime.Now);
ObjCls cls = new ObjCls();
cls.Prop = DateTime.Now;
JsonSerializerSettings settings = new JsonSerializerSettings();
settings.Converters.Add(new IsoDateTimeConverter());
string json1 = JsonConvert.SerializeObject(dt, Formatting.Indented, settings);
string json2 = JsonConvert.SerializeObject(cls, Formatting.Indented, settings);
Console.WriteLine(json1);
Console.WriteLine("===========================================");
Console.WriteLine(json2);
}
class ObjCls
{
public DateTime Prop { get; set; }
}
}
我得到了(如果我不添加IsoDateTimeConverter,结果相同):
[
{
"Prop": "2016-04-03T16:02:09.0163201"
}
]
===========================================
{
"Prop": "2016-04-03T16:02:09.0173201+07:00"
}
您能解释一下为什么这些数据时间结果不同吗?
【问题讨论】:
标签: c# .net json datetime datatable