zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    SDRAM(3):刷新和仲裁
    SDRAM(2):初始化
    SDRAM(1):基本介绍
    计数器(3):避免多计少计
    协议——SPI
    matlab数字图像处理 入门基础
    gVim编辑器——基本设置、常用命令、代码片段
    Pomelo的Router
    Pomelo聊天室框架
    Pomelo术语解释
  • 原文地址:https://www.cnblogs.com/yonsy/p/2628722.html
Copyright © 2011-2022 走看看