Penulisan Fail C# JSON: Panduan Komprehensif
Panduan ini memperincikan kaedah yang cekap untuk menulis data JSON ke fail dalam C#. Cabarannya terletak pada memformat data dengan betul dalam sintaks JSON yang sah, termasuk kurungan yang diperlukan.
Model Data:
<code class="language-csharp">public class DataItem { public int Id { get; set; } public int SSN { get; set; } public string Message { get; set; } }</code>
Data Contoh:
<code class="language-json">[ { "Id": 1, "SSN": 123, "Message": "whatever" }, { "Id": 2, "SSN": 125, "Message": "whatever" } ]</code>
Penyelesaian menggunakan Newtonsoft.Json (Disyorkan):
Newtonsoft.Json menawarkan pendekatan yang sangat cekap, mengelakkan penimbalan rentetan.
<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>
Penyelesaian menggunakan System.Text.Json (.NET Core 3.0 dan lebih baru):
System.Text.Json ialah perpustakaan terbina dalam yang menyediakan kefungsian serupa dengan keupayaan tak segerak.
<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>
Pilih kaedah yang paling sesuai dengan keperluan projek anda dan versi .NET. Untuk prestasi optimum, terutamanya dengan set data yang besar, siri aliran fail langsung (Kaedah 2 menggunakan Newtonsoft.Json atau kaedah tak segerak menggunakan System.Text.Json) disyorkan.
Atas ialah kandungan terperinci Bagaimana untuk Menulis Data JSON dengan Cekap ke Fail dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!