可以';t将JSON数据解析为.NET DateTime

本文关键字:NET DateTime 数据 JSON 可以 | 更新日期: 2023-09-27 18:08:37

这很简单。我有一个字符串

string s = "/Date(1474408920000)/"

我想把它转换成一个日期:

DateTime date = JsonConvert.DeserializeObject<DateTime>(s);

但我得到了错误:

分析注释时出错。应为:*,得到D.路径",第1行,位置1。

这里发生了什么

谢谢你的帮助!

可以';t将JSON数据解析为.NET DateTime

您的json字符串无效,但可以通过用" 将其包围来轻松修复

string s = @"""/Date(1474408920000)/""";

现在DateTime date = JsonConvert.DeserializeObject<DateTime>(s);将在上工作

        var LogDate = new DateTime(2016, 9, 20, 22, 2, 0, DateTimeKind.Utc);
        string JsonDate = JsonConvert.SerializeObject(LogDate, new JsonSerializerSettings {
            DateFormatHandling = DateFormatHandling.MicrosoftDateFormat
        });
        Console.WriteLine(JsonDate);
        Console.ReadLine();

此代码的输出为您提供了正确的JSON日期格式:

"'/Date(1474408920000)'/"

所以你的字符串应该是这样的:

string s = "'"''/Date(1474408920000)''/'"";

尝试使用以下代码将DateTime对象序列化为JSON。

        var dateTime = DateTime.Now;
        var jsonDate = Newtonsoft.Json.JsonConvert.SerializeObject(dateTime, 
                            new Newtonsoft.Json.JsonSerializerSettings() { 
                                DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat, 
                                DateParseHandling = Newtonsoft.Json.DateParseHandling.DateTime });

CCD_ 3将保持该值CCD_
现在使用下面的代码反序列化json日期字符串。

var dateObj = Newtonsoft.Json.JsonConvert.DeserializeObject<DateTime>(dateString, 
                            new Newtonsoft.Json.JsonSerializerSettings() { 
                                DateParseHandling = Newtonsoft.Json.DateParseHandling.DateTime, 
                                DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat });