如题

解决方案 »

  1.   

    public static DataTable Json2DataTable(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];
                        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;
        }
      

  2.   

    通过Newtonsoft.Json就能搞定,能遍历,就有机会。
    http://www.cnblogs.com/gghxh/archive/2008/01/11/1035482.html
      

  3.   

    弱弱的问一下,有木有转换成dataset的啊,呵呵
      

  4.   

    Json2DataTable这个方法,无法处理不同深度的json变量,最保险的还是用成熟的转换组件。另 datatable是dataset的子集,楼主对基本概念,不是太了解。
      

  5.   

    我知道是子集,现在的问题是Json转dataset的问题啊
      

  6.   

    datatable插入到空的dataset里不会? 自己百度一下,会记忆深刻的。