C# 将json转换成Datatable
程序员文章站
2022-03-21 15:20:58
...
/// <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(); if (str.Contains("#")) { string[] strCell = str.Split('#'); if (strCell[0].Substring(0, 1) == "\"") { int a = strCell[0].Length; if(a>2) { dc.ColumnName = strCell[0].Substring(1, a - 2); } } else { dc.ColumnName = strCell[0]; } tb.Columns.Add(dc); } } tb.AcceptChanges(); } //增加内容 DataRow dr = tb.NewRow(); int k = 0; for (int r = 0; r < strRows.Length; r++) { if (strRows[r].Contains("#")) { dr[k] = strRows[r].Split('#')[1].Trim().Replace(",", ",").Replace(":", ":").Replace("\"", ""); } else { k = r - 1; } k++; } tb.Rows.Add(dr); tb.AcceptChanges(); } return tb; }
上一篇: DolphinDB流数据聚合引擎教程
下一篇: python爬虫实现成语接龙1.0
推荐阅读
-
jQuery.parseJSON(json)将JSON字符串转换成js对象
-
C# convert json to datatable,convert list to datatable
-
C#实现集合转换成json格式数据的方法
-
C#实现DataTable,List和Json转换的方法
-
C#实现Json转DataTable并导出Excel的方法示例
-
C#实现DataTable转换成IList的方法
-
c# json转换成dynamic对象,然后在dynamic对象中动态获取指定字符串列表中的值
-
C# 将datatable导出成Excel
-
C# 把List 集合转换成DataTable
-
ASP.NET将DataTable解析成JSON