序列化到特定对象时,Json.NET错误处理失败

时间:2015-07-31 06:03:22

标签: c# json json.net

我尝试使用JsonSerializerSettings进行自定义错误处理,但是当我指定对象类型时,错误会在运行时调试中停止。 " json"由于远程错误无法更改/修复,因此无效JSON。

工作:

var responseData = JsonConvert.DeserializeObject(json,new JsonSerializerSettings
{
    MissingMemberHandling = MissingMemberHandling.Ignore,
    Error = (sender, args) =>
    {
      // My error handling
    }
});

打破:

  

其他信息:转换价值时出错"收到的商家与注册商家不匹配"输入' TransmitModels + errorData'。路径...

TransmitModels.errorData responseData = JsonConvert.DeserializeObject<TransmitModels.errorData>(json,new JsonSerializerSettings
{
    MissingMemberHandling = MissingMemberHandling.Ignore,
    Error = (sender, args) =>
    {
      // My error handling
    }
});

1 个答案:

答案 0 :(得分:2)

您需要致电

args.ErrorContext.Handled = true;

在你的回调中告诉Json.NET你处理了异常。如果你没有(可能是因为你只想记录错误),那么在你的回调之后会抛出异常。