C# 无法将类型Newtonsoft.Linq.JToken 隐式转换为System.Datetime?

前言

今天,前台页面传JSON字符串,后台接口以JObject接收数据。发现,在日期转换的过程中出现以下问题:

该字符串未被识别为有效的 DateTime。

产生错误原因

查看代码,发现,在实体类中日期类型是可空的。同时,前台传给后台的日期是也是空的。导致后台使用Convert.ToDateTime()进行转换时,出现以上的问题。

实体:

public Datetime? mdate { get; set;}

后台转换:

md.mdate=Convert.ToDateTime(data["mdate"]);

解法方案

写一个方法去判断日期类型的方法。代码如下:

public DateTime? GetDate(string mdata) {
  if (!string.IsNullOrEmpty(mdata))
  {
     return Convert.ToDateTime(mdata);
  }
  return null;
}

每次转换之前对日期进行判断即可;

md.mdate=GetDate(data["mdate"].ToString());

C# 无法将类型Newtonsoft.Linq.JToken 隐式转换为System.Datetime?

上一篇:[ICPC2020昆明I] Mr. Main and Windmills - 计算几何


下一篇:WPF 添加全局异常捕获