JSON数据转换DataTable

mac2022-06-30  17

/// <summary> /// 将json转换为DataTable /// </summary> /// <param name="strJson">得到的json</param> /// <returns></returns> private System.Data.DataTable JsonToDataTable(string strJson) {      //转换json格式      strJson = strJson.Replace(",\"", "*\"").Replace("\":", "\"#").ToString();      //取出表名       var rg = new System.Text.RegularExpressions.Regex(@"(?<={)[^:]+(?=:\[)", System.Text.RegularExpressions.RegexOptions.IgnoreCase);      string strName = rg.Match(strJson).Value;      System.Data.DataTable tb = null;      //去除表名      strJson = strJson.Substring(strJson.IndexOf("[") + 1);    strJson = strJson.Substring(0, strJson.IndexOf("]"));

    //获取数据     rg = new System.Text.RegularExpressions.Regex(@"(?<={)[^}]+(?=})");   System.Text.RegularExpressions.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 System.Data.DataTable();    TableName = strName;   foreach (string str in strRows)   {     var dc = new System.Data.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();   }

//增加内容   System.Data.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;   }

转载于:https://www.cnblogs.com/fengmingming/p/6088073.html

相关资源:C#将json格式转换成DataTable实例
最新回复(0)