datatable 转换json

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了datatable 转换json相关的知识,希望对你有一定的参考价值。

1.页面ajax传值到一般处理程序

 function btnOnClick() {
        alert(1);
        $.ajax({
            url: "../ashx/HanderTest.ashx",
            type: "GET",
            dataType: "json",
            success: function (data) {
                alert("成功");
                alert(data.status);
                var obj = data.rows;
                var html = "";
                html += "<ul>";
                for (var i = 0; i < obj.length; i++) {
                    html += "<li>" + obj[i].Product + "</li>";
                    html += "<li>" + obj[i].Description + "</li>";
                }
                html += "</ul>";
                $("#span_tr").append(html);
                //document.getElementById("span_tr").append = html;
            },
            fail: function () {
                alert("失败");
            },
            error: function () {
                alert("错误");
            }

        });
            } 

2.一般处理程序转换json

技术分享
     public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            #region DataTable类型数据
            DataTable dt = new DataTable("Datas");
            DataColumn dc = null;
            dc = dt.Columns.Add("ID", Type.GetType("System.Int32"));
            dc.AutoIncrement = true;//自动增加 
            dc.AutoIncrementSeed = 1;//起始为1 
            dc.AutoIncrementStep = 1;//步长为1 
            dc.AllowDBNull = false;

            dc = dt.Columns.Add("Product", Type.GetType("System.String"));
            dc = dt.Columns.Add("Description", Type.GetType("System.String"));
            for (int i = 0; i < 5; i++)
            {
                DataRow dr = dt.NewRow(); ;
                dr["Product"] = "测试产品" + i;
                dr["Description"] = "测试产品描述" + i;
                dt.Rows.Add(dr);
            }
            #endregion

            #region JSON 格式化
            StringBuilder Str = new StringBuilder();
            Str.Append("{\\"status\\":200,");
            Str.Append("\\"rows\\":[");
            DataRowCollection drc = dt.Rows;
            for (int i = 0; i < drc.Count; i++)
            {
                Str.Append("{");
                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    string strKey = dt.Columns[j].ColumnName;//列名
                    string strValue = drc[i][j].ToString();//列名对应的值
                    if (j < dt.Columns.Count - 1)
                    {
                        Str.AppendFormat("\\"{0}\\":\\"{1}\\",", strKey, strValue);//有逗号
                    }
                    else
                    {
                        Str.AppendFormat("\\"{0}\\":\\"{1}\\"", strKey, strValue);//无逗号
                    }
                }
                Str.Append("},");
            }
            Str.Remove(Str.Length - 1, 1);//移除最后一个逗号
            Str.Append("]}");
            #endregion

            string jsonstr = Str.ToString();
            context.Response.Write(jsonstr);
        }
View Code

 

以上是关于datatable 转换json的主要内容,如果未能解决你的问题,请参考以下文章

.NET DataTable DataSet转json代码

Datatable转换为Json

DataTable 转换成 Json的3种方法

DataTable 对象 转换为Json 字符串

Json 字符串 转换为 DataTable数据集合

c#常用的Datable转换为json,以及json转换为DataTable操作方法