代码之家  ›  专栏  ›  技术社区  ›  shamim

多好的Newtonsoft。Json JsonTextReader-用于检查Json流是否有效

  •  0
  • shamim  · 技术社区  · 8 年前

    需要处理一个大的JSON文件。优化内存使用 use bellow语法,正在寻找一种在执行方法读取器之前检查输入JSON是否有效或输入流是否为JSON的方法。Read(),因为在执行无效的JSON后,此语法在此处引发异常。

    例外情况: 纽顿软件。Json。JsonReaderException:“分析值时遇到意外字符:h.路径“”,第0行,位置0。”

    HttpClient client = new HttpClient();
    
    using (Stream s = client.GetStreamAsync("http://www.test.com/large.json").Result)
    using (StreamReader sr = new StreamReader(s))
    using (JsonReader reader = new JsonTextReader(sr))
    {
        JsonSerializer serializer = new JsonSerializer();
    
        // read the json from a stream
        // json size doesn't matter because only a small piece is read at a time from the HTTP request
        while (reader.Read())//invalid json throws exception
          Person p = serializer.Deserialize<Person>(reader);
    }
    
    0 回复  |  直到 8 年前