代码之家  ›  专栏  ›  技术社区  ›  Farhad Zamani

当json在JsonConvert.DeserializeObject中无效时,如何防止JsonReaderException

  •  0
  • Farhad Zamani  · 技术社区  · 3 年前

    我有一个将字符串反序列化为类型的方法。

    var data = JsonConvert.DeserializeObject<TestData>("invalid json");
    

    如果字符串无效, JsonReaderException 正在发生。

    我想返回的默认值 TestData (null)当字符串无效时,而不是引发异常。

    没有我怎么能做到这一点 try/catch 和 JObject ?

    1 回复  |  直到 3 年前
        1
  •  3
  •   Farhad Zamani    3 年前

    您可以使用 JsonSerializerSettings 为了处理它,它的结果将为NULL。 参考 JsonConvert.DeserializeObject 和 JsonSerializerSettings.Error

    var settings = new JsonSerializerSettings 
    {
        Error = (se, ev) => 
        { 
            ev.ErrorContext.Handled = true; 
        } 
    };
    var data = JsonConvert.DeserializeObject<Currency>("invalid json", settings);