使用C#把Json转换成DataTable

发布时间 2023-06-10 23:45:18作者: 宁静致远.

要将 JSON 转换为 DataTable,你可以使用 Newtonsoft.Json 库(也称为 Json.NET),它是一个流行的用于处理 JSON 数据的库。 以下是使用 C# 和 Newtonsoft.Json 将 JSON

首先,确保你已经安装了 Newtonsoft.Json 库。 你可以在 Visual Studio 中通过 NuGet

然后,使用以下代码将 JSON 转换为 DataTable:

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Data;

// JSON 字符串
string json = @"[
    { 'Id': 1, 'Name': 'John', 'Age': 30 },
    { 'Id': 2, 'Name': 'Jane', 'Age': 25 },
    { 'Id': 3, 'Name': 'Bob', 'Age': 40 }
]";

// 将 JSON 字符串解析为 JArray 对象
JArray jsonArray = JArray.Parse(json);

// 创建 DataTable
DataTable dataTable = new DataTable();

// 添加列
foreach (JProperty property in jsonArray[0])
{
    dataTable.Columns.Add(property.Name);
}

// 添加行
foreach (JObject jsonObject in jsonArray)
{
    DataRow row = dataTable.NewRow();
    foreach (JProperty property in jsonObject.Properties())
    {
        row[property.Name] = property.Value.ToString();
    }
    dataTable.Rows.Add(row);
}

// 输出 DataTable
foreach (DataRow row in dataTable.Rows)
{
    foreach (DataColumn column in dataTable.Columns)
    {
        Console.WriteLine($"{column.ColumnName}: {row[column]}");
    }
    Console.WriteLine();
}

  

上述代码中,首先定义了一个包含 JSON 数据的字符串 json。 然后,使用 JArray.Parse() 方法将 JSON 字符串解析为 JArray 对象。 接下来,创建一个空的 DataTable 对象dataTable

通过遍历 JArray 中的第一个对象的属性,将其作为列名添加到 DataTable 中。 然后,通过遍历 JArray 中的每个对象,创建新的 DataRow 并将值添加到相应的列中。 最后,将行添加到 DataTable 中。

最后,你可以遍历 DataTable 中的行和列,以查看转换后的数据。

请注意,上述示例中的 JSON 字符串只是一个简单的示例,你可以根据实际情况修改和调整代码以适应你的 JSON 结构和数据格式。