小工具知识网

当前位置: 首页 > 行业知识 > C# 读写 JSON 文件全攻略:详尽代码示例与注释解析

行业知识

C# 读写 JSON 文件全攻略:详尽代码示例与注释解析

2026-11-02 04:53:48 来源:互联网转载

一、准备工作

在C#中处理JSON文件,通常会借助于第三方库,如Newtonsoft.Json(也被称为Json.NET)。它提供了丰富的API用于JSON的序列化与反序列化。如果您使用的是较新的.NET Core或.NET 6及更高版本,还可以选择使用内置的System.Text.Json库。这里我们将以Newtonsoft.Json为例,因为它在.NET生态中广泛应用且功能成熟。

首先,确保您已经通过NuGet包管理器在项目中安装了Newtonsoft.Json库。如果您尚未安装,请在Visual Studio中打开“工具”->“NuGet包管理器”->“管理解决方案的NuGet包”,搜索并安装“Newtonsoft.Json”。

二、读取JSON文件

步骤1:引入必要的命名空间
 

Csharp

using System;using System.IO;using Newtonsoft.Json;
步骤2:编写读取JSON文件的代码

假设我们有一个名为data.json的文件,其中包含一个表示用户信息的JSON对象:

 

Json

{  "Name": "John Doe",  "Age": 30,  "IsAdmin": false,  "Skills": ["C#", "JavaScript", "SQL"]}

我们可以使用以下代码将其读取并反序列化为一个C#对象:

 

Csharp

// 定义一个与JSON结构对应的C#类public class User{    public string Name { get; set; }    public int Age { get; set; }    public bool IsAdmin { get; set; }    public string[] Skills { get; set; }}public static User ReadJsonFile(){    // JSON文件路径    string filePath = @"path\to\data.json";    try    {        // 打开并读取文件内容        using (StreamReader fileReader = new StreamReader(filePath))        {            // 从文件中获取JSON字符串            string jsonContent = fileReader.ReadToEnd();            // 使用JsonConvert.DeserializeObject反序列化JSON字符串为User对象            User user = JsonConvert.DeserializeObject(jsonContent);            return user;        }    }    catch (FileNotFoundException ex)    {        Console.WriteLine($"Error: 文件 {filePath} 未找到。");        throw;    }    catch (Exception ex)    {        Console.WriteLine($"Error: 读取或解析JSON文件时发生错误。{ex.Message}");        throw;    }}
代码注释说明
  • User 类定义了与JSON结构匹配的属性,以便反序列化时将JSON数据映射到相应的C#对象上。
  • ReadJsonFile 方法中:
    • 首先指定JSON文件的路径。
    • 使用StreamReader打开并读取文件内容到一个字符串变量jsonContent中。
    • 调用JsonConvert.DeserializeObject方法,将JSON字符串转换为User类型的实例。
    • 使用try-catch语句捕获可能发生的异常,如文件未找到或解析过程中出现的错误,并适当处理。

    三、写入JSON文件

    步骤1:确保已引入所需命名空间(与读取部分相同)
     

    Csharp

    using System;using System.IO;using Newtonsoft.Json;
    步骤2:编写写入JSON文件的代码

    假设我们有一个User对象,想要将其序列化为JSON字符串并保存到名为output.json的文件中:

     

    Csharp

    public static void WriteJsonFile(User user){    // JSON文件输出路径    string outputPath = @"path\to\output.json";    try    {        // 将User对象序列化为JSON字符串        string jsonOutput = JsonConvert.SerializeObject(user, Formatting.Indented);        // 将JSON字符串写入文件        using (StreamWriter fileWriter = new StreamWriter(outputPath))        {            fileWriter.Write(jsonOutput);        }        Console.WriteLine("User data successfully written to JSON file.");    }    catch (Exception ex)    {        Console.WriteLine($"Error: 写入JSON文件时发生错误。{ex.Message}");        throw;    }}
    代码注释说明
    • WriteJsonFile 方法接受一个User对象作为参数。
    • 使用JsonConvert.SerializeObject方法将传入的User对象序列化为格式化的JSON字符串(Formatting.Indented参数使其具有良好的可读性)。
    • 创建一个StreamWriter对象,以指定的outputPath打开文件,然后将JSON字符串写入文件。
    • 同样使用try-catch语句捕获并处理可能出现的异常。

      总结

上一篇:二元逻辑回归(logistic regression)

下一篇:samp进入服务器怎么注册?