/// <summary>/// {table:[{column1:1,column2:2,column3:3},{column1:1,column2:2,column3:3}]} /// </summary> /// <param name="strJson">Json字符串</param> /// <returns></returns> public static DataTable JsonToDataTable(
string strJson) {
//取出表名 Regex 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) { DataColumn dc =
new DataColumn();
string[] strCell = str.Split(
':'); dc.ColumnName = strCell[
0].ToString(); 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; }
转载于:https://www.cnblogs.com/wugang/archive/2012/03/22/2411224.html
相关资源:数据结构—成绩单生成器