C# Can';t使用JavaScriptDateTimeConverter解析数据

C# Can';t使用JavaScriptDateTimeConverter解析数据,c#,json,json.net,C#,Json,Json.net,我尝试使用JSON.net解析简单的JSON string inputJson = @" { ""modificationTime"" : ""\/Date(1224043200000)\/"" }"; 并且定义了属性 [JsonProperty("modificationTime")] [JsonConverter(typeof(JavaScriptDateTimeConverter))]

我尝试使用JSON.net解析简单的JSON

 string inputJson = @"
                {
                 ""modificationTime"" : ""\/Date(1224043200000)\/""
                 }";
并且定义了属性

[JsonProperty("modificationTime")]
[JsonConverter(typeof(JavaScriptDateTimeConverter))]
public DateTime ModificationTime { get; set; }
但反序列化对象引发异常,并显示以下消息: 分析日期时出现意外标记或值。标记:日期,值:10/15/2008 04:00:00

据我所知,它已经解析了日期,不是吗? 此异常从JavaScriptDateTimeConverter.cs中的第68行引发:

68 if (reader.TokenType != JsonToken.StartConstructor ||  string.Compare(reader.Value.ToString(), "Date", StringComparison.Ordinal) != 0)
69            throw new Exception("Unexpected token or value when parsing date. Token: {0}, Value: {1}".FormatWith(CultureInfo.InvariantCulture, reader.TokenType, reader.Value));
70    
71          reader.Read();
在这里reader.TokenType是日期,reader.Value.ToString()是10/15/2008 04:00:00。
有什么想法吗?

不久前我也遇到过类似的问题。我找到了一个解决方法,并在博客上对此进行了讨论:


希望有帮助。

Json.NET使用以下格式反序列化日期:

"\/Date(1224043200000)\/"
new Date(1234567890)
默认情况下。JavaScriptDateTimeConverter用于以下格式的日期:

"\/Date(1224043200000)\/"
new Date(1234567890)

不,没有。他写道,如果它是“/Date(1224043200000)/”那么它将不起作用。当我使用“\/Date(1224043200000)\/”时。我想问题是reader.TokenType应该是JsonToken.StartConstructor。这可能意味着“\/的解析方式与此标记类似。