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
相关产品推荐
相关产品推荐

