提问者:小点点

快速发现元素是否包含C#中JSON格式的数据。净6


在C#中最有效的方法是什么。Net 6来确定元素或字符串是否包含JSON格式的数据。将有数十亿行要搜索,不知道是否使用JSON。Net,系统。JSON、正则表达式或其他方式的计算成本最低。理想情况下,这是一个成功的基础。containsJson方法,该方法使完全限定的JSON文档很可能是JSON格式的数据。


共1个答案

匿名用户

开箱即用Json。NET的速度比DataConttJsonSerializer和JavaScriptSerializer更快。NET支持直接从流反序列化,使用StreamReader一次读取一个JSON字符串反序列化JSON,而不是将整个JSON字符串加载到内存中。

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
    Person p = serializer.Deserialize<Person>(reader);
}

为了保持应用程序持续快速,重要的是最小化的时间量。NET框架花费执行垃圾回收机制。当垃圾回收机制正在进行时,分配太多对象或分配非常大的对象会减慢甚至停止应用程序。

为了最大限度地减少内存使用和分配的对象数量,Json。NET支持直接对流进行序列化和反序列化。在处理大于85kb的JSON文档时,一次读取或写入一段JSON,而不是将整个JSON字符串加载到内存中,这一点尤为重要,以避免JSON字符串最终进入大型对象堆。

请查看以下链接以了解更多信息:

  1. JSON。净绩效提示