Gérer efficacement les gros fichiers JSON en C#
Le traitement de nombreux ensembles de données JSON présente un défi de performances important. Les lecteurs JSON standard ont souvent du mal à gérer des fichiers volumineux. Cet article montre comment Json.NET, une puissante bibliothèque C#, fournit une solution supérieure.
Json.NET : rationalisation de l'analyse JSON
Json.NET est une bibliothèque open source spécialement conçue pour une manipulation JSON efficace en C#. Il offre une approche simplifiée de l'analyse, améliorant considérablement les performances par rapport aux lecteurs JSON de base.
L'extrait de code suivant illustre l'approche simplifiée de Json.NET :
<code class="language-csharp">public void LoadJson() { using (StreamReader r = new StreamReader("file.json")) { string json = r.ReadToEnd(); List<Item> items = JsonConvert.DeserializeObject<List<Item>>(json); } } public class Item { public int millis; public string stamp; public DateTime datetime; public string light; public float temp; public float vcc; }</code>
Ce code désérialise directement la chaîne JSON en un List<Item>
fortement typé, où chaque objet Item
correspond à un objet JSON dans le fichier. L'accès aux valeurs individuelles est alors simple (par exemple, item.temp
, item.vcc
).
Extraction dynamique de données avec Json.NET
Lorsqu'une structure fortement typée n'est pas nécessaire, Json.NET permet la désérialisation dynamique des objets :
<code class="language-csharp">dynamic array = JsonConvert.DeserializeObject(json); foreach (var item in array) { Console.WriteLine("{0} {1}", item.temp, item.vcc); }</code>
Cette approche dynamique offre flexibilité et efficacité d'exécution en permettant un accès à la propriété et à la valeur à la volée.
En résumé, Json.NET fournit une méthode robuste et efficace pour analyser les gros fichiers JSON en C#, améliorant à la fois les performances et la lisibilité du code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!