C# 处理';输入字符串不是有效的数字';json反序列化中的错误

C# 处理';输入字符串不是有效的数字';json反序列化中的错误,c#,json,error-handling,deserialization,custom-error-handling,C#,Json,Error Handling,Deserialization,Custom Error Handling,使用Newtonsoft.Json,我需要反序列化一个包含数字“2.696539702293474e308”的Json,这是他们表达NaN的方式 下面的代码几乎可以工作 public class MyClass { public double[] VectorOfDoubles; } private static void Do() { var errors = new List<string>(); var content = "{ " +

使用Newtonsoft.Json,我需要反序列化一个包含数字“2.696539702293474e308”的Json,这是他们表达NaN的方式

下面的代码几乎可以工作


public class MyClass
{
    public double[] VectorOfDoubles;
}

private static void Do()
{
    var errors = new List<string>();

    var content = "{ " +
        "\"VectorOfDoubles\" : [0.2, 0.3] " +
        ", \"WithNans\" : [0.4, 2.696539702293474e308] " +
        "}";

    var output = JsonConvert.DeserializeObject<MyClass>(content, new JsonSerializerSettings
    {
        Error = (currentObject, errorArgs) =>
        {
            errors.Add(errorArgs.ErrorContext.Error.Message);
            errorArgs.ErrorContext.Handled = true;
        },
    });
}

如果WithNan包含多个违规项,则会出现问题,如

"WithNans" [0.4, 2.696539702293474e308, 2.696539702293474e308]
在本例中,错误包含两项,但.DeserializeObject返回null

为什么??
有没有办法完全忽略某个字段上的所有项目?

您可以向
MyClass
添加一个属性来保存不需要的值,例如:
public string[]WithNans{get;set;}
您可以向
MyClass
添加一个属性来保存不需要的值,例如:
public string[]WithNans{get;set;}
"WithNans" [0.4, 2.696539702293474e308, 2.696539702293474e308]