Heim >Backend-Entwicklung >C++ >Wie schreibe ich JSON-Daten effizient in eine Datei in C#?

Wie schreibe ich JSON-Daten effizient in eine Datei in C#?

Barbara Streisand
Barbara StreisandOriginal
2025-01-18 01:27:08687Durchsuche

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

Schreiben von C#-JSON-Dateien: Ein umfassender Leitfaden

Diese Anleitung beschreibt effiziente Methoden zum Schreiben von JSON-Daten in Dateien in C#. Die Herausforderung besteht darin, die Daten in gültiger JSON-Syntax korrekt zu formatieren, einschließlich der erforderlichen Klammern.

Datenmodell:

<code class="language-csharp">public class DataItem
{
    public int Id { get; set; }
    public int SSN { get; set; }
    public string Message { get; set; }
}</code>

Beispieldaten:

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

Lösung mit Newtonsoft.Json (empfohlen):

Newtonsoft.Json bietet einen hocheffizienten Ansatz, der die Pufferung von Zeichenfolgen vermeidet.

<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>

Lösung mit System.Text.Json (.NET Core 3.0 und höher):

System.Text.Json ist eine integrierte Bibliothek, die ähnliche Funktionen mit asynchronen Funktionen bietet.

<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>

Wählen Sie die Methode, die den Anforderungen Ihres Projekts und der .NET-Version am besten entspricht. Für eine optimale Leistung, insbesondere bei großen Datenmengen, wird die direkte Dateistream-Serialisierung (Methode 2 mit Newtonsoft.Json oder die asynchrone Methode mit System.Text.Json) empfohlen.

Das obige ist der detaillierte Inhalt vonWie schreibe ich JSON-Daten effizient in eine Datei in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn