一尘不染

如何在JsonConvert.DeserializeObject中处理null / empty值

json

我有以下代码:

return (DataTable)JsonConvert.DeserializeObject(_data, (typeof(DataTable)));

然后,我尝试:

var jsonSettings = new JsonSerializerSettings
{
    NullValueHandling = NullValueHandling.Ignore
};

return (DataTable)JsonConvert.DeserializeObject<DataTable>(_data, jsonSettings);

返回行抛出错误:

{“将值\“ \”转换为类型’System.Double’时出错。“}

在线上有许多解决方案建议Class使用空值类型创建自定义,但这对我不起作用。我不能指望json是某种格式。我无法控制列数,列类型或列名。


阅读 500

收藏
2020-07-27

共1个答案

一尘不染

您可以提供设置来JsonConvert.DeserializeObject告诉它如何处理空值(在这种情况下,还有更多):

var settings = new JsonSerializerSettings
                    {
                        NullValueHandling = NullValueHandling.Ignore,
                        MissingMemberHandling = MissingMemberHandling.Ignore
                    };
var jsonModel = JsonConvert.DeserializeObject<Customer>(jsonString, settings);
2020-07-27