ToJson
2024-10-04 18:47:14
/// <summary> /// DataTable转成Json /// </summary> /// <param name="jsonName"></param> /// <param name="dt"></param> /// <returns></returns> public static string ToJson(DataTable dt, string jsonName) { StringBuilder Json = new StringBuilder(); if (string.IsNullOrEmpty(jsonName)) jsonName = dt.TableName; Json.Append("{\"" + jsonName + "\":["); ) { ; i < dt.Rows.Count; i++) { Json.Append("{"); ; j < dt.Columns.Count; j++) { Type type = dt.Rows[i][j].GetType(); Json.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":" + StringFormat(dt.Rows[i][j].ToString(), type)); ) { Json.Append(","); } } Json.Append("}"); ) { Json.Append(","); } } } Json.Append("]}"); return Json.ToString(); }
#region 私有方法 /// <summary> /// 过滤特殊字符 /// </summary> /// <param name="s">字符串</param> /// <returns>json字符串</returns> private static string String2Json(String s) { StringBuilder sb = new StringBuilder(); ; i < s.Length; i++) { char c = s.ToCharArray()[i]; switch (c) { case '\"': sb.Append("\\\""); break; case '\\': sb.Append("\\\\"); break; case '/': sb.Append("\\/"); break; case '\b': sb.Append("\\b"); break; case '\f': sb.Append("\\f"); break; case '\n': sb.Append("\\n"); break; case '\r': sb.Append("\\r"); break; case '\t': sb.Append("\\t"); break; default: sb.Append(c); break; } } return sb.ToString(); } /// <summary> /// 格式化字符型、日期型、布尔型 /// </summary> /// <param name="str"></param> /// <param name="type"></param> /// <returns></returns> private static string StringFormat(string str, Type type) { if (type == typeof(string)) { str = String2Json(str); str = "\"" + str + "\""; } else if (type == typeof(DateTime)) { str = "\"" + str + "\""; } else if (type == typeof(bool)) { str = str.ToLower(); } else if (type != typeof(string) && string.IsNullOrEmpty(str)) { str = "\"" + str + "\""; } return str; } #endregion
最新文章
- js的浅拷贝和深拷贝
- 解决 scroll() position:fixed 抖动、导航菜单固定头部(底部)跟随屏幕滚动
- POJ 2923 Relocation (状态压缩,01背包)
- iOS CocoaPods安装和使用图解
- D2GS1.11 的DC Key的相關設置指南
- Android开发之Bitmap二次采样
- select random item with weight 根据权重随机选出
- jquery easy ui 学习 (2) customtools window
- (三)Android中Intent概念及应用
- [问题解决] ubuntu server12.04 认证的问题
- 使用HAXM加速Android虚拟机
- Android项目实战(二十九):酒店预定日期选择
- CSDN 支持Markdown写文章了!
- SDN网络中hypervisor带来的控制器时延(Hypervisor位置的优化)
- JS获取当月第一天和最后一天
- Spring定义事物通知tx:advice
- Intellij-插件安装-JRebel热部署插件安装
- RockChip RK3326 系统编译问题总结
- AspectJ框架基于注解的AOP实现
- html 中一些不常见的标签