解析JSON而不会在出错时抛出异常?

时间:2016-04-25 15:25:28

标签: c# json

在我的C#项目中,我有机会反序列化可能不正确的JSON。因此,错误是可能的。目前,我将它包装在try块中,并通过返回null来捕获异常。这样可行,但告诉库不要首先抛出异常会更好。这可能吗?

我目前的代码:

public static NodeModel FromJsonString(string json)
{
  NodeModel r = null;
  JsonConverter converter = JsonConverters.ReferenceHierarchyCreation;
  try
  {
    r = JsonConvert.DeserializeObject<NodeModel>(json, converter);
  }
  catch
  {
  }
  return r;
}

1 个答案:

答案 0 :(得分:3)

  

但是告诉图书馆不要抛出异常会更好   第一个地方

没有TryParse组JSON解析方法。你现在拥有的可能是你能做的。

另一个选项是validate your JSON against a Schema,只有在JSON有效时才解析。

只是要添加,唯一的办法是捕获实际的异常并将其记录到某个地方,但是如果你只对解析和忽略异常感兴趣,那么你的解决方案就足够了。