C#:DataGridView控件中展示JSON内容

在C#中,如果想在DataGridView控件中展示JSON内容,可以通过以下几个步骤来实现:

步骤 1: 解析JSON

首先,需要解析JSON字符串。这可以通过使用Newtonsoft.Json(Json.NET)库来完成,这是一个流行的JSON处理库。如果还没有安装这个库,可以通过NuGet包管理器来安装它。

在Visual Studio中,可以通过NuGet包管理器控制台执行以下命令来安装Json.NET

Install-Package Newtonsoft.Json

步骤 2: 创建数据表并填充DataGridView

接下来,创建一个DataTable并将解析后的JSON数据填充到这个表中。然后,将这个DataTable的数据源设置为DataGridView的DataSource属性。

示例代码

以下是一个完整的示例,展示如何实现上述步骤:

using System;

using System.Data;

using System.Windows.Forms;

using Newtonsoft.Json;

using Newtonsoft.Json.Linq;

namespace JsonToDataGridViewExample

{

public partial class MainForm : Form

{

public MainForm()

{

InitializeComponent();

LoadData();

}

private void LoadData()

{

string json = @"[

{'Name': 'John Doe', 'Age': 30, 'Email': 'john@example.com'},

{'Name': 'Jane Smith', 'Age': 25, 'Email': 'jane@example.com'}

]";

// 解析JSON字符串为JArray

JArray array = JsonConvert.DeserializeObject<JArray>(json);

DataTable table = new DataTable();

// 动态创建列名(可选)

if (array.Count > 0)

{

foreach (var property in array0.Children())

{

table.Columns.Add(property.Path); // 使用属性名作为列名

}

}

// 填充数据表

foreach (var item in array)

{

DataRow row = table.NewRow();

foreach (var property in item.Children())

{

rowproperty.Path = property.Value; // 使用属性值填充行数据

}

table.Rows.Add(row);

}

// 将DataTable设置为DataGridView的数据源

dataGridView1.DataSource = table;

}

}

}

说明:

‌JSON解析‌:使用JsonConvert.DeserializeObject<JArray>(json)将JSON字符串解析为JArray对象。这允许访问JSON中的数组元素。

‌创建DataTable‌:根据JSON数组的第一个元素动态创建列名(可选)。然后,遍历整个数组,将每个对象转换为DataRow并添加到DataTable中。

‌设置DataGridView的数据源‌:最后,将创建好的DataTable设置为DataGridView的DataSource属性。

相关推荐
IvanCodes3 小时前
Python 数据处理(十三):JSON、CSV 与数据序列化
开发语言·python
aramae5 小时前
MySQL复合查询(8)
java·c语言·开发语言·后端·算法
淡海水6 小时前
13-04-面试-源码级深度追问链
数据结构·unity·面试·c#·游戏引擎·源码·il2cpp
asdzx677 小时前
如何使用 C# 提取 PPT 文本与图片
c#·ppt·提取文本
qq_2518364577 小时前
springboot vue3 开发实现 拼豆管理系统
java·开发语言·ai编程
郑州光合科技余经理8 小时前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
知识分享小能手8 小时前
C++ 学习教程,从入门到精通,C++ 入门知识 — 完整知识点(1)
开发语言·c++·学习
+VX:Fegn08959 小时前
计算机毕业设计|基于springboot + vue旅游管理系统(源码+数据库+文档)
java·开发语言·vue.js·spring boot·课程设计
阿里嘎多学长9 小时前
2026-09-20 GitHub 热点项目精选
开发语言·程序员·github·代码托管
weixin_3077791311 小时前
C++代码实现MATLAB中的ode23tb函数功能
开发语言·c++·算法·matlab