Maison > développement back-end > C++ > Comment écrire efficacement des données JSON dans un fichier en C# ?

Comment écrire efficacement des données JSON dans un fichier en C# ?

Barbara Streisand
Libérer: 2025-01-18 01:27:08
original
686 Les gens l'ont consulté

How to Efficiently Write JSON Data to a File in C#?

Écriture de fichiers C# JSON : un guide complet

Ce guide détaille les méthodes efficaces pour écrire des données JSON dans des fichiers en C#. Le défi réside dans le formatage correct des données dans une syntaxe JSON valide, y compris les parenthèses nécessaires.

Modèle de données :

<code class="language-csharp">public class DataItem
{
    public int Id { get; set; }
    public int SSN { get; set; }
    public string Message { get; set; }
}</code>
Copier après la connexion

Exemples de données :

<code class="language-json">[
  {
    "Id": 1,
    "SSN": 123,
    "Message": "whatever"
  },
  {
    "Id": 2,
    "SSN": 125,
    "Message": "whatever"
  }
]</code>
Copier après la connexion

Solution utilisant Newtonsoft.Json (Recommandé) :

Newtonsoft.Json propose une approche très efficace, évitant la mise en mémoire tampon des chaînes.

<code class="language-csharp">List<DataItem> dataItems = new List<DataItem>();
dataItems.Add(new DataItem { Id = 1, SSN = 2, Message = "A Message" });

// Method 1: Serialize to string, then write to file
string jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(dataItems.ToArray());
System.IO.File.WriteAllText(@"D:\path.txt", jsonString);


// Method 2: Direct serialization to file stream (more efficient)
using (StreamWriter file = File.CreateText(@"D:\path2.txt"))
{
    Newtonsoft.Json.JsonSerializer serializer = new Newtonsoft.Json.JsonSerializer();
    serializer.Serialize(file, dataItems);
}</code>
Copier après la connexion

Solution utilisant System.Text.Json (.NET Core 3.0 et versions ultérieures) :

System.Text.Json est une bibliothèque intégrée offrant des fonctionnalités similaires avec des capacités asynchrones.

<code class="language-csharp">using System.Text.Json;

List<DataItem> dataItems = new List<DataItem>();
dataItems.Add(new DataItem { Id = 1, SSN = 2, Message = "A Message" });

// Synchronous method
string jsonString = JsonSerializer.Serialize(dataItems);
File.WriteAllText(@"D:\path.json", jsonString);

// Asynchronous method
await using FileStream createStream = File.Create(@"D:\pathAsync.json");
await JsonSerializer.SerializeAsync(createStream, dataItems);</code>
Copier après la connexion

Choisissez la méthode qui correspond le mieux aux besoins de votre projet et à la version .NET. Pour des performances optimales, en particulier avec de grands ensembles de données, la sérialisation directe du flux de fichiers (méthode 2 utilisant Newtonsoft.Json ou méthode asynchrone utilisant System.Text.Json) est recommandée.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal