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!