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#程序设计有所帮助。