Jquery 将后台返回的字符串转换成Json格式的数据

//code by:博客园-曹永思

第一步:将DataTable转换成 Json格式的数据

方法 一

View Code
        /// <summary>
        /// DataTable转成Json格式,方法 一
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public string DataTableToJson1(DataTable dt)
        {
            #region DataTable To Json Method One
            //Json集合数据开始
            string autoJson1 = "[";

            foreach (DataRow dr in dt.Rows)
            {
                #region 一组数据
                //一组数据开始
                autoJson1 += "{";

                foreach (DataColumn cl in dt.Columns)
                {
                    //一组键值对
                    autoJson1 += string.Format("\"{0}\":\"{1}\",", cl.ColumnName, dr[cl.ColumnName]);
                }
                //去掉最后一对键值后面的 逗号 “,”
                autoJson1 = autoJson1.Substring(0, autoJson1.Length - 1);

                //一组数据结束
                autoJson1 += "},";
                #endregion
            }

            //去掉最后一组数据后面的 逗号 “,”
            autoJson1 = autoJson1.Substring(0, autoJson1.Length - 1);

            //Json集合数据结束
            autoJson1 += "]";
            #endregion

            return autoJson1;
        }

方法二

View Code
        /// <summary>
        /// DataTable转成Json格式,方法 二
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public string DataTableToJson2(DataTable dt)
        {
            #region  DataTable To Json Method Two
            //Json集合数据开始
            string autoJson2 = "[";

            int rowCount2 = dt.Rows.Count;//数据组数量
            int columnCount2 = dt.Columns.Count;//键值对数量

            int row2 = 0;
            foreach (DataRow dr in dt.Rows)
            {
                row2++;

                #region 一组数据
                //一组数据开始
                autoJson2 += "{";
                int column2 = 0;
                foreach (DataColumn cl in dt.Columns)
                {
                    column2++;

                    //一组键值对
                    autoJson2 += string.Format("\"{0}\":\"{1}\"", cl.ColumnName, dr[cl.ColumnName]);

                    //若不是最后一组键值对,则加逗号以与下一组键值对隔开
                    if (column2 != columnCount2)
                        autoJson2 += ",";
                }
                //一组数据结束
                autoJson2 += "}";

                #endregion

                //若不是最后一组数据,则加逗号以与下一组数据隔开
                if (row2 != rowCount2)
                    autoJson2 += ",";
            }

            //Json集合数据结束
            autoJson2 += "]";
            #endregion

            return autoJson2;
        }

方法三

View Code
        /// <summary>
        /// DataTable转成Json格式,方法 三
        /// </summary>
        /// <param name="dt"></param>
        /// <returns></returns>
        public string DataTableToJson3(DataTable dt)
        {
            #region  DataTable To Json Method Three

            //Json集合数据开始
            string autoJson3 = "[";

            int rowCount3 = dt.Rows.Count;
            int columnCount3 = dt.Columns.Count;
            int row3 = 0;
            for (int r = 0; r < dt.Rows.Count; r++)
            {
                row3++;
                #region 一组数据

                //一组数据开始
                autoJson3 += "{";

                int column3 = 0;
                for (int c = 0; c < dt.Columns.Count; c++)
                {
                    column3++;

                    //一组键值对
                    autoJson3 += string.Format("\"{0}\":\"{1}\"", dt.Columns[c].ColumnName, dt.Rows[r][c]);

                    //若不是最后一组键值对,则加逗号以与下一组键值对隔开
                    if (column3 != columnCount3)
                        autoJson3 += ",";
                }
                //一组数据结束
                autoJson3 += "}";
                #endregion


                //若不是最后一组数据,则加逗号以与下一组数据隔开
                if (row3 != rowCount3)
                    autoJson3 += ",";
            }

            //Json集合数据结束
            autoJson3 += "]";
            #endregion

            return autoJson3;
        }

第二步:Eg,返回的字符串数据格式

var backString=

[{"id":"74","xmlname":"constellation","nodeid":"other_2","username":"Anyone","userfaceurl":"http://t2.baidu.com /it/u=2152954466,1933595111","commentcontent":"很好很准 确。","addtime":"2012-8-8 14:23:56"},{"id":"73","xmlname":"constellation","nodeid":"other_2","username":"Anyone","userfaceurl":"http://t2.baidu.com/it/u=2152954466,1933595111","commentcontent":"3324","addtime":"2012-8-8 14:21:56"},{"id":"72","xmlname":"constellation","nodeid":"other_2","username":"Anyone","userfaceurl":"http://t2.baidu.com/it/u=2152954466,1933595111","commentcontent":"rwe","addtime":"2012-8-8 14:21:55"}]
 
 
第三步:用eval方法将字符串转换成Json格式数据

var jsonData = eval(backString);
            //遍历jsonData:
            for (var i = 0; i < jsonData.length; i++) {
                alert(jsonData[i].id);
            }

 欢迎转载,转载请注明出处,希望帮到更多人。

 .net重写URL:http://www.cnblogs.com/yonsy/archive/2012/09/21/2696935.html

原文地址:https://www.cnblogs.com/yonsy/p/2628722.html