您的位置:首页 > Web前端 > JavaScript

C# DataTable转json,DataSet转json

2014-09-04 16:02 246 查看
近期在做一个ASP.NET程序,考虑数据量比较大的问题,用了json数据格式传输。以下是本人的DataTable或DataSet转为json格式字符串的函数。

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Web;

using System.Data;

#region dataTable转换成Json格式

        /// <summary>  

        /// dataTable转换成Json格式  

        /// </summary>  

        /// <param name="dt"></param>  

        /// <returns></returns>  

        public string DataTableToJson(DataTable dt)

        {

            String jsonstr = "{\"" + dt.TableName + "\":[";

            for (int i = 0; i < dt.Rows.Count; i++)

            {

                jsonstr += "{";

                for (int j = 0; j < dt.Columns.Count; j++)

                {

                    jsonstr += "\"" + dt.Columns[j].ColumnName + "\":";

                    jsonstr += "\"" + dt.Rows[i][j].ToString() + "\",";

                }

                jsonstr = jsonstr.TrimEnd(',');

                jsonstr += "},";

            }

            jsonstr = jsonstr.TrimEnd(',');

            jsonstr += "]}";

            return jsonstr;

        }

        #endregion dataTable转换成Json格式

        #region DataSet转换成Json格式

        /// <summary>  

        /// DataSet转换成Json格式  

        /// </summary>  

        /// <param name="ds">DataSet</param> 

        /// <returns></returns>  

        public string DatasetToJson(DataSet ds)

        {

            StringBuilder json = new StringBuilder();

            json.Append("{");

            foreach (DataTable dt in ds.Tables)

            {

                json.Append(DataTable2Json(dt).TrimStart('{').TrimEnd('}') + ",");

            }

            return json.ToString().TrimEnd(',') + "}";

        }

        #endregion

        /// <summary>

        /// Msdn

        /// </summary>

        /// <param name="jsonName"></param>

        /// <param name="dt"></param>

        /// <returns></returns>

        public string DataTableToJson_MSDN(string jsonName, DataTable dt)

        {

            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();

        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐