您好,欢迎访问一九零五行业门户网

Jquery解析json数据详解_jquery

最近被jquery折磨了一番,倒腾了一个jquery解析json的demo,本demo想实现从asp.net后台实例化dataset或者datatable数据集,将dataset转换成json并返回给客户端,客户端用jquery getjson方法解析出来并显示在页面上。
首先简单介绍一下getjson方法
jquery.getjson(url,[data],[callback])
url:发送请求地址。
data:待发送 key/value 参数。
callback:载入成功时回调函数。
下面是实战getjson方法
首先 创建一个辅助类,用于将dataset数据集转换成json字符串
复制代码 代码如下:
public static string datatabletojson(string jsonname, datatable dt)
        {
            stringbuilder json = new stringbuilder();
            json.append({\ + jsonname + \:[);
            if (dt.rows.count > 0)
            {
                for (int i = 0; i                 {
                    json.append({);
                    for (int j = 0; j                     {
                        json.append(\ + dt.columns[j].columnname.tostring() + \:\ + dt.rows[i][j].tostring() + \);
                        if (j                         {
                            json.append(,);
                        }
                    }
                    json.append(});
                    if (i                     {
                        json.append(,);
                    }
                }
            }
            json.append(]});
            return json.tostring();
        }
此方法是msdn上的一个辅助类方法。第二步 手动配置创建一个演示dataset,但在项目中一般都是从数据库中或者service中获得数据
复制代码 代码如下:
public static dataset binddata()
        {
            datatable dtdata = new datatable();
            dtdata.columns.add(id);
            dtdata.columns.add(name);
            dtdata.columns.add(sex);
            datarow drdata;
            drdata = dtdata.newrow();
            drdata[0] = 16;
            drdata[1] = zhaoliu;
            drdata[2] = man;
            dtdata.rows.add(drdata);
            drdata = dtdata.newrow();
            drdata[0] = 19;
            drdata[1] = zhangsan;
            drdata[2] = women;
            dtdata.rows.add(drdata);
            dataset ds = new dataset();
            ds.tables.add(dtdata);
            return ds;
        }
第三步 创建aspx页面前台页面:两个button,一个单击开始解析json数据,另外一个查看json字符串
复制代码 代码如下:
后台页面:
复制代码 代码如下:
protected void page_load(object sender, eventargs e)
        {
            jsonajax();
        }
        private void jsonajax() {
            string action = request[action];
            if (!string.isnullorempty(action) && action == action)  //判断是否通过前台的点击事件进来的
            {
                string str = datatableconvertjson.datatabletojson(json, data.binddata().tables[0]);
                response.write(str);
                response.end();
            }
        }
最后给大家展示一下生成的json格式:top of form
{json:[{id:16,name:zhaoliu,sex:man},{id:19,name:zhangsan,sex:women}]}
bottomof form
其它类似信息

推荐信息