我尝试使用Json.net解析简单的JSON
string inputJson = @"
{
""modificationTime"" : ""\/Date(1224043200000)\/""
}";
定义属性
[JsonProperty("modificationTime")]
[JsonConverter(typeof(JavaScriptDateTimeConverter))]
public DateTime ModificationTime { get; set; }
但是DeserializeObject使用以下消息抛出异常: “解析日期时出现意外的标记或值。令牌:日期,值: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是Date和reader.Value.ToString()是10/15/2008 04:00:00。 有什么想法吗?
答案 0 :(得分:6)
Json.NET使用以下格式对日期进行反序列化:
"\/Date(1224043200000)\/"
默认情况下。 JavaScriptDateTimeConverter用于格式为的日期:
new Date(1234567890)
答案 1 :(得分:0)
前段时间我遇到过类似的问题。我找到了一个解决方法,并在博客上写了一篇文章:
http://shico.blogspot.com/2010/07/ajaxpro-deserialize-json-datetime.html
希望它有所帮助。