C# 如何将JSON.NET反序列化为Microsoft日期时间?

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,我能够使用/序列化Microsoft DateTime格式,但DateTimes似乎继续使用ISO 8601标准进行反序列化

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