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中文网其他相关文章!