C#实现将json转换为DataTable的方法
本文实例讲述了C#实现将json转换为DataTable的方法。分享给大家供大家参考。具体实现方法如下:
#region将json转换为DataTable
///<summary>
///将json转换为DataTable
///</summary>
///<paramname="strJson">得到的json</param>
///<returns></returns>
privateDataTableJsonToDataTable(stringstrJson)
{
//转换json格式
strJson=strJson.Replace(",\"","*\"").Replace("\":","\"#").ToString();
//取出表名
varrg=newRegex(@"(?<={)[^:]+(?=:\[)",RegexOptions.IgnoreCase);
stringstrName=rg.Match(strJson).Value;
DataTabletb=null;
//去除表名
strJson=strJson.Substring(strJson.IndexOf("[")+1);
strJson=strJson.Substring(0,strJson.IndexOf("]"));
//获取数据
rg=newRegex(@"(?<={)[^}]+(?=})");
MatchCollectionmc=rg.Matches(strJson);
for(inti=0;i<mc.Count;i++)
{
stringstrRow=mc[i].Value;
string[]strRows=strRow.Split('*');
//创建表
if(tb==null)
{
tb=newDataTable();
tb.TableName=strName;
foreach(stringstrinstrRows)
{
vardc=newDataColumn();
string[]strCell=str.Split('#');
if(strCell[0].Substring(0,1)=="\"")
{
inta=strCell[0].Length;
dc.ColumnName=strCell[0].Substring(1,a-2);
}
else
{
dc.ColumnName=strCell[0];
}
tb.Columns.Add(dc);
}
tb.AcceptChanges();
}
//增加内容
DataRowdr=tb.NewRow();
for(intr=0;r<strRows.Length;r++)
{
dr[r]=strRows[r].Split('#')[1].Trim().Replace(",",",").Replace(":",":").Replace("\"","");
}
tb.Rows.Add(dr);
tb.AcceptChanges();
}
returntb;
}
#endregion
希望本文所述对大家的C#程序设计有所帮助。