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());


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM