//---------<<< 还原 >>>-------------------------------------------------------------------- public DataTable revertDataTable(String strJson) { DataTable tblRet = null; strJson = CSTR.trim(strJson); if (strJson.Length <= 0) { return(null); } try { JavaScriptSerializer json = new JavaScriptSerializer(); json.MaxJsonLength = Int32.MaxValue;//设置JSON串的最大值 //解析json字符串 Dictionary <String, Object> tblMap = json.Deserialize <Dictionary <String, Object> >(strJson); if (CSTR.IsDictionaryEmpty(tblMap)) { return(null); } //必须使用ArrayList,当用List<String>时返回为null(原因不明) ArrayList columnList = tblMap["column"] as ArrayList; if (CSTR.IsListEmpty(columnList)) { return(null); } ArrayList rowList = tblMap["data"] as ArrayList; if (CSTR.IsListEmpty(rowList)) { return(null); } //重建DataTable tblRet = new DataTable(); //重建column foreach (String column in columnList) { tblRet.Columns.Add(column); } //填充数据 int nCloumnCount = columnList.Count; foreach (ArrayList list in rowList) { DataRow newRow = tblRet.NewRow(); for (int i = 0; i < nCloumnCount; i++) { newRow[i] = list[i]; } tblRet.Rows.Add(newRow);//循环添加行 } } catch (Exception exp) { Console.WriteLine(exp.Message); tblRet = null; } return(tblRet); }