c#json转datatable
时间: 2023-07-19 13:20:37 浏览: 101
你可以使用Json.NET库将JSON字符串反序列化为一个JArray对象,然后使用该对象的ToDataTable方法将其转换为DataTable。以下是一个示例代码:
```csharp
string json = "{'data':[{'id':1,'name':'John'},{'id':2,'name':'Jane'}]}"; // 示例JSON字符串
JObject obj = JObject.Parse(json); // 解析JSON字符串
JArray arr = (JArray)obj["data"]; // 获取数据数组
DataTable dt = arr.ToDataTable(); // 将数组转换为DataTable
// 扩展方法 ToDataTable
public static class ExtensionMethods
{
public static DataTable ToDataTable(this JArray arr)
{
DataTable dt = new DataTable();
foreach (JToken token in arr)
{
if (token is JObject)
{
JObject obj = (JObject)token;
DataRow row = dt.NewRow();
foreach (JProperty prop in obj.Properties())
{
if (!dt.Columns.Contains(prop.Name))
{
dt.Columns.Add(prop.Name);
}
row[prop.Name] = prop.Value.ToString();
}
dt.Rows.Add(row);
}
}
return dt;
}
}
```
这个示例代码将JSON字符串反序列化为一个包含两个对象的数据数组,然后使用扩展方法将其转换为一个包含id和name列的DataTable。你可以根据自己的需要调整代码。
阅读全文