| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
10年前发布

C# 将 Json 解析成 DateTable

#region 将 Json 解析成 DateTable            /// <summary>               /// 将 Json 解析成 DateTable。              /// Json 数据格式如:             ///     {table:[{column1:1,column2:2,column3:3},{column1:1,column2:2,column3:3}]}             /// </summary>               /// <param name="strJson">要解析的 Json 字符串</param>               /// <returns>返回 DateTable</returns>               public DataTable JsonToDataTable(string strJson)            {                // 取出表名                   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(':');                            dc.ColumnName = strCell[0].Replace("\"", "");                            tb.Columns.Add(dc);                        }                        tb.AcceptChanges();                    }                    // 增加内容                       DataRow dr = tb.NewRow();                    for (int j = 0; j < strRows.Length; j++)                    {                        dr[j] = strRows[j].Split(':')[1].Replace("\"", "");                    }                    tb.Rows.Add(dr);                    tb.AcceptChanges();                }                return tb;            }            #endregion  

格式如下:

    {            "table": [                {                    "column1": 1,                     "column2": 2,                     "column3": 3                },                 {                    "column1": 1,                     "column2": 2,                     "column3": 3                }            ]        }