Быстро узнать, содержит ли элемент данные в формате JSON в C # .Net 6

Каким будет наиболее эффективный способ в C # .Net 6 определить, содержит ли элемент или строка данные в формате JSON. У вас будут миллиарды строк для поиска, и я не знал, использовать ли JSON.Net, System.JSON или выражение регулярного выражения, или другой способ будет наименее затратным с точки зрения вычислений. В идеале это основа для метода .containsJson, который сокращает полностью квалифицированный документ JSON с высокой вероятностью, что это данные в формате JSON.

1 ответ

Из коробки быстрее, чем DataContractJsonSerializer и JavaScriptSerializer. поддерживает десериализацию непосредственно из потока, десериализуйте свой JSON с помощью StreamReaderчтение строки 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поддерживает сериализацию и десериализацию непосредственно в поток. Чтение или запись JSON по частям вместо загрузки всей строки JSON в память особенно важно при работе с документами JSON размером более 85 КБ, чтобы избежать попадания строки JSON в кучу больших объектов.

Пожалуйста, проверьте ссылку ниже, чтобы получить лучшее представление:

  1. Советы по производительности JSON.NET
  2. Разбор большого файла JSON в .NET
Другие вопросы по тегам