C# json字符串转化成table为空
时间: 2023-08-17 07:09:10 浏览: 201
你可以使用Json.NET库来将C#中的JSON字符串转换为DataTable。下面是一个示例代码:
```csharp
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Data;
class Program
{
static void Main()
{
string json = "{\"employees\":[{\"firstName\":\"John\",\"lastName\":\"Doe\"},{\"firstName\":\"Anna\",\"lastName\":\"Smith\"},{\"firstName\":\"Peter\",\"lastName\":\"Jones\"}]}";
DataTable dt = ConvertJsonToDataTable(json);
foreach (DataRow row in dt.Rows)
{
Console.WriteLine(row["firstName"] + " " + row["lastName"]);
}
}
static DataTable ConvertJsonToDataTable(string json)
{
DataTable dataTable = new DataTable();
JObject jsonObject = JObject.Parse(json);
// 获取所有属性名称
var properties = jsonObject.Properties().ToList();
// 创建表结构
foreach (JProperty property in properties)
{
dataTable.Columns.Add(property.Name, typeof(string));
}
// 添加行数据
foreach (JProperty property in properties)
{
foreach (JObject item in property.Value)
{
DataRow row = dataTable.NewRow();
foreach (JProperty itemProperty in item.Properties())
{
row[itemProperty.Name] = itemProperty.Value.ToString();
}
dataTable.Rows.Add(row);
}
}
return dataTable;
}
}
```
这个示例中,我们将一个包含员工信息的JSON字符串转换为DataTable,并将结果打印出来。你可以根据自己的JSON结构进行修改。记得在项目中引入`Json.NET`库,你可以通过NuGet进行安装。
阅读全文