C# JSON 檔案編寫:綜合指南
本指南詳細介紹了在 C# 中將 JSON 資料寫入檔案的有效方法。 挑戰在於以有效的 JSON 語法正確格式化數據,包括必要的括號。
資料模型:
<code class="language-csharp">public class DataItem { public int Id { get; set; } public int SSN { get; set; } public string Message { get; set; } }</code>
範例資料:
<code class="language-json">[ { "Id": 1, "SSN": 123, "Message": "whatever" }, { "Id": 2, "SSN": 125, "Message": "whatever" } ]</code>
使用 Newtonsoft.Json 的解決方案(建議):
Newtonsoft.Json 提供了一種高效的方法,避免了字串緩衝。
<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>
使用 System.Text.Json 的解決方案(.NET Core 3.0 及更高版本):
System.Text.Json 是一個內建函式庫,提供類似的功能和非同步功能。
<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>
選擇最適合您的專案需求和 .NET 版本的方法。 為了獲得最佳效能,特別是對於大型資料集,建議使用直接檔案流序列化(使用 Newtonsoft.Json 的方法 2 或使用 System.Text.Json 的非同步方法)。
以上是如何在C#中高效率地將JSON資料寫入檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!