zoukankan      html  css  js  c++  java
  • DataTable To Json

    标题不正确,只是把datatable转成json格式的字符串,其实自己循环拼接一下也就行了,但既然有DataTable这种东西,那么不如把它扩展一下,直接输出不是更快?

    于是我把它写成了扩展方法,没有这个需求的话,把this去掉,可以当成普通方法来用

    第二个方法我重载了一个可以选择字段的方法,这样可以减少不必要的传输量

        //DataTable转成Json 
        public static string ToJson(this DataTable dt, string jsonName)
        {
            StringBuilder Json = new StringBuilder();
            Json.Append("{\"" + jsonName + "\":[");
            if (dt.Rows.Count > 0)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    Json.Append("{");
                    for (int j = 0; j < dt.Columns.Count; j++)
                    {
                        Json.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":\"" + dt.Rows[i][j].ToString() + "\"");
                        if (j < dt.Columns.Count - 1)
                        {
                            Json.Append(",");
                        }
                    }
                    Json.Append("}");
                    if (i < dt.Rows.Count - 1)
                    {
                        Json.Append(",");
                    }
                }
            }
            Json.Append("]}");
            return Json.ToString();
        }
        /// <summary>选取自定义的列生成json字符串</summary>
        /// <param name="tableSource">数据库查询结果</param>
        /// <param name="fields">需要添加进来的字段名</param>
        /// <returns></returns>
        public static string ToJson(this DataTable tableSource, string jsonName, params string[] fields)
        {
            if (fields.Count() < 1) throw new Exception("fields count must be 1 or more");//至少要转化一列
            string jsonData = "{'" + jsonName + "':[";
    
            if (tableSource.Rows.Count > 0)
            {
                foreach (DataRow row in tableSource.Rows)
                {
                    jsonData += "{";
                    for (int i = 0; i < fields.Length; i++)
                        jsonData += "'" + fields[i] + "':'" + row[fields[i]] + "',";
                    jsonData = jsonData.Substring(0, jsonData.Length - 1);
                    jsonData += "},";
                }
                jsonData = jsonData.Substring(0, jsonData.Length - 1);
                jsonData += "]}";
            }
            else
            {
                jsonData += "]}";
            }
    
            return jsonData;
        }
  • 相关阅读:
    文本框字数减少
    区分兼容IE6/IE7/IE8/IE9/FF的CSS HACK写法
    将浏览器兼容代码标明信息并相互分开
    JavaScript正则表达式
    CSS3 @font-face
    iOS 获取手机的使用存储信息
    升级 ox 10.11的系统以后执行 pod install 的时候报错
    Xcode7安装模拟器
    iOS-视图生命周期
    Xcode升级插件失效修复快捷方式
  • 原文地址:https://www.cnblogs.com/walkerwang/p/1989778.html
Copyright © 2011-2022 走看看