将值 null 转换为输入 json 中的“System.DateTime”时出错

Posted

技术标签:

【中文标题】将值 null 转换为输入 json 中的“System.DateTime”时出错【英文标题】:Error converting value null to type 'System.DateTime' in input json将值 null 转换为输入 json 中的“System.DateTime”时出错 【发布时间】:2013-09-03 06:30:48 【问题描述】:

当我尝试在我的 Json 中输入以下 DateTime 参数时,抛出了这个 JsonSerializationException:

“在输入 json 中将值 null 转换为类型 'System.DateTime' 时出错”

我在这里给出了输入:

string inputJSONString = "....,\"StartDateFrom\":null,\"StartDateTo\":null,\"EndDateFrom\":null,\"EndDateTo\":null,\....";

并使用反序列化:

scT = (SearchCriteriaTask)JsonConvert.DeserializeObject(inputJSONString , typeof(SearchCriteriaTask));

我的 json 是正确的,我也尝试过 ("") 值而不是 null。 我无法在其他地方找到合适的解决方案。谢谢。

如果需要任何部分代码,请注明。

【问题讨论】:

【参考方案1】:

正如错误试图告诉您的那样,.Net 值类型(如 DateTime)不能包含空值。

如果要允许空值,请使用可空类型:

DateTime? StartDateFrom  get; set; 

【讨论】:

我现在已经知道这个问题有多基本了!我不知道它使用了这样的可空值。我对它很陌生。这行得通。谢谢 如果有人对 DateTime 为什么不能为空有疑问,可以在这里找到答案:***.com/questions/689512/…

以上是关于将值 null 转换为输入 json 中的“System.DateTime”时出错的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中的服务器端将值转换为 NULL

我无法解析应用程序中 JSON 的嵌套类中的 mag 以及地点和时间,它们都将值显示为 null

MySQL:无法更新 JSON 列以将值从浮点数转换为整数

如何在将jsonObject转换为模型对象时检测缺失的字段

Newtonsoft JSON反序列化问题[将值转换为类型时出错]

将 JSON 对象脱盐到数据表时将值“1D”转换为类型“System.Int64”时出错