C# 如何将JSON.NET反序列化为Microsoft日期时间?
使用JsonSerializerSettings,我能够使用/序列化Microsoft DateTime格式,但DateTimes似乎继续使用ISO 8601标准进行反序列化C# 如何将JSON.NET反序列化为Microsoft日期时间?,c#,json,serialization,json.net,C#,Json,Serialization,Json.net,使用JsonSerializerSettings,我能够使用/序列化Microsoft DateTime格式,但DateTimes似乎继续使用ISO 8601标准进行反序列化 JsonSerializerSettings = new JsonSerializerSettings { DateFormatHandling = DateFormatHandling.MicrosoftDateFormat } 我正试图编写一个自
JsonSerializerSettings = new JsonSerializerSettings {
DateFormatHandling = DateFormatHandling.MicrosoftDateFormat
}
我正试图编写一个自定义JsonConverter来处理反序列化,但在转义字符方面遇到了问题
writer.WriteValue ("\\/Date(" + x + ")\\/");
写的是什么
"\\/Date(1446145200000)\\/"
以前有人解决过这个问题吗?一直在四处搜索,但没有找到好的解决方案看起来您的输入日期已被序列化为滴答声。在自定义转换器中,可以反序列化JSON值并使用它初始化DateTime对象吗 这里不需要自定义转换器。使用
DateFormatHandling=DateFormatHandling.MicrosoftDateFormat
设置是正确的方法,可用于序列化和反序列化。确保将设置传递给相应的序列化对象
和反序列化对象
方法。如果您不通过设置,它将使用默认格式,即ISO 8601
using System;
using Newtonsoft.Json;
public class Program
{
public static void Main()
{
Foo foo = new Foo { Date = new DateTime(2015,10,29,19,0,0) };
JsonSerializerSettings settings = new JsonSerializerSettings
{
DateFormatHandling = DateFormatHandling.MicrosoftDateFormat,
Formatting = Formatting.Indented
};
string json = JsonConvert.SerializeObject(foo, settings);
Console.WriteLine(json);
foo = JsonConvert.DeserializeObject<Foo>(json, settings);
Console.WriteLine(foo.Date.ToString());
}
}
class Foo
{
public DateTime Date { get; set; }
}
Fiddle:我正在使用库,它实际上在使用
序列化
和反序列化
调用(我正在传递我在上面发布的设置),但从repo看,看起来设置似乎用于两种方法……奇怪。你能编辑你的问题并发布一个演示问题的帖子吗?
{
"Date": "\/Date(1446145200000+0000)\/"
}
10/29/2015 7:00:00 PM