DataTable转换成json字符串
2016-07-25 16:45
621 查看
将DataTable里面的行转换成json字符串方法:
#region DataTable转为json /// <summary> /// DataTable转为json /// </summary> /// <param name="dt">DataTable</param> /// <returns>json数据</returns> public static string DataTableToJson(DataTable dt) { List<Dictionary<string, object>> list = (from DataRow dr in dt.Rows select dt.Columns.Cast<DataColumn>().ToDictionary(dc => dc.ColumnName, dc => dr[dc])).ToList(); return SerializeToJson(list); } #endregion #region 序列化对象为Json字符串 /// <summary> /// 序列化对象为Json字符串 /// </summary> /// <param name="obj">要序列化的对象</param> /// <param name="recursionLimit">序列化对象的深度,默认为100</param> /// <returns>Json字符串</returns> public static string SerializeToJson(object obj, int recursionLimit = 100) { try { System.Web.Script.Serialization.JavaScriptSerializer serialize = new System.Web.Script.Serialization.JavaScriptSerializer(); serialize.RecursionLimit = recursionLimit; return serialize.Serialize(obj); } catch { return ""; } } #endregion #region json包转DataTable /// <summary> /// json包转DataTable /// </summary> /// <param name="jsons"></param> /// <returns></returns> public static DataTable JsonToDataTable(string jsons) { DataTable dt = new DataTable(); try { System.Web.Script.Serialization.JavaScriptSerializer serialize = new System.Web.Script.Serialization.JavaScriptSerializer(); serialize.MaxJsonLength = Int32.MaxValue; ArrayList list = serialize.Deserialize<ArrayList>(jsons); if (list.Count > 0) { foreach (Dictionary<string, object> item in list) { if (item.Keys.Count == 0)//无值返回空 { return dt; } if (dt.Columns.Count == 0)//初始Columns { foreach (string current in item.Keys) { dt.Columns.Add(current, item[current].GetType()); } } DataRow dr = dt.NewRow(); foreach (string current in item.Keys) { dr[current] = item[current]; } dt.Rows.Add(dr); } } } catch { return dt; } return dt; } #endregion
相关文章推荐
- JavaScript文档对象模型
- js闭包
- JSON介绍
- extjs3.3 + fushioncharts + velocity 实现折线图
- 《精通javascript》几个简单的函数
- maven中Rhino classes (js.jar) not found - Javascript disabled的处理
- dojo/json传数据
- jsoup简单的爬取网页数据
- js中常用屏蔽代码(转)
- javaScript的继承
- js之运算符的注意事项
- 【JS】 伪主动触发input:file的click事件
- js金额格式化
- JavaScript实现省市级联效果实例
- **一个好幼稚的javascript变量加减的小东西**
- 图像像素处理_明度/亮度/平均值/灰褐色/滤镜/灰色_canvas_js动画
- JS模块化写法
- JS模块化编程总结
- js之数据类型
- 探索Javascript异步编程