C#实现将json转换为DataTable的方法
发布时间:2020-12-15 05:59:02 所属栏目:百科 来源:网络整理
导读:本篇章节讲解C#实现将json转换为DataTable的方法。供大家参考研究。具体实现方法如下: 复制代码 代码如下: #region 将json转换为DataTable /// summary /// 将json转换为DataTable /// /summary /// param name="strJson"得到的json/param /// retu
本篇章节讲解C#实现将json转换为DataTable的方法。分享给大家供大家参考。具体实现方法如下: 复制代码 代码如下: #region 将json转换为DataTable
/// <summary> /// 将json转换为DataTable /// </summary> /// <param name="strJson">得到的json</param> /// <returns></returns> private DataTable JsonToDataTable(string strJson) { //转换json格式 strJson = strJson.Replace(","","*"").Replace("":",""#").ToString(); //取出表名 var rg = new Regex(@"(?<={)[^:]+(?=:[)",RegexOptions.IgnoreCase); string strName = rg.Match(strJson).Value; DataTable tb = null; //去除表名 strJson = strJson.Substring(strJson.IndexOf("[") + 1); strJson = strJson.Substring(0,strJson.IndexOf("]")); //获取数据 rg = new Regex(@"(?<={)[^}]+(?=})"); MatchCollection mc = rg.Matches(strJson); for (int i = 0; i < mc.Count; i++) { string strRow = mc[i].Value; string[] strRows = strRow.Split('*'); //创建表 if (tb == null) { tb = new DataTable(); tb.TableName = strName; foreach (string str in strRows) { var dc = new DataColumn(); string[] strCell = str.Split('#'); if (strCell[0].Substring(0,1) == """) { int a = strCell[0].Length; dc.ColumnName = strCell[0].Substring(1,a - 2); } else { dc.ColumnName = strCell[0]; } tb.Columns.Add(dc); } tb.AcceptChanges(); } //增加内容 DataRow dr = tb.NewRow(); for (int r = 0; r < strRows.Length; r++) { dr[r] = strRows[r].Split('#')[1].Trim().Replace(",",",").Replace(":",":").Replace(""",""); } tb.Rows.Add(dr); tb.AcceptChanges(); } return tb; } #endregion 希望本文所述对大家的C#程序设计有所帮助。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |