You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#实现点击按钮读取JSON并更新DataGridView

点击按钮读取JSON并更新DataGridView的实现方法

要实现点击按钮读取JSON文件并更新窗体加载时填充的DataGridView,核心逻辑是读取JSON内容→反序列化为对应数据对象→将数据绑定/填充到表格,以下是具体步骤和修正后的代码:

一、准备对应的数据模型类

首先需要根据你的defaultValue.json结构创建匹配的C#类,JSON才能正确反序列化为可操作的数据对象。比如你的JSON是参数数组结构:

[
  {"ParamName": "阈值1", "ParamValue": "50"},
  {"ParamName": "阈值2", "ParamValue": "100"}
]

对应的模型类如下:

public class ParamItem
{
    public string ParamName { get; set; }
    public string ParamValue { get; set; }
}

二、完整的按钮点击事件代码

修正并补充后的代码(使用.NET自带的System.Text.Json序列化库):

using System.Text.Json;
using System.IO;

private void button3_Click(object sender, EventArgs e)
{
    // 1. 清空表格现有数据和参数集合
    dataGridView1.Rows.Clear();
    parameters.Clear(); // 假设parameters是存储参数的集合(如List<ParamItem>)

    // 2. 构建JSON文件路径(用Path.Combine避免路径分隔符问题)
    string jsonFilePath = Path.Combine(Application.StartupPath, "Files", "defaultValue.json");

    try
    {
        // 3. 读取JSON文件内容
        string jsonContent = File.ReadAllText(jsonFilePath);

        // 4. 将JSON反序列化为数据集合
        List<ParamItem> paramList = JsonSerializer.Deserialize<List<ParamItem>>(jsonContent);

        // 5. 将数据填充到DataGridView
        foreach (var item in paramList)
        {
            dataGridView1.Rows.Add(item.ParamName, item.ParamValue);
            parameters.Add(item); // 同步更新参数集合
        }
    }
    catch (Exception ex)
    {
        // 捕获异常(文件不存在、JSON格式错误等)
        MessageBox.Show($"读取JSON失败:{ex.Message}");
    }
}

关键细节说明

  • 路径处理:用Path.Combine代替直接拼接字符串,适配不同系统的路径分隔符(Windows用\,Linux用/)。
  • 资源管理:File.ReadAllText会自动处理文件流的打开与关闭,比手动创建FileStream更简洁安全。
  • 异常处理:添加try-catch块可以避免因文件缺失、JSON格式错误导致程序崩溃,同时给出明确提示。
  • 高效绑定:如果DataGridView已经设置了列的DataPropertyName(比如列的DataPropertyName对应模型类的ParamName和ParamValue),可以直接用dataGridView1.DataSource = paramList;替代逐行添加,效率更高。

内容的提问来源于stack exchange,提问作者Hande

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 02:31:10