zoukankan      html  css  js  c++  java
  • jquery ajax调用后台方法返回json数据转自http://www.cnblogs.com/xiaoxi/archive/2011/03/31/2000803.html

    利用JQuery的$.ajax()可以很方便的调用 asp.net的后台方法。但往往从后台返回的json字符串不能够正确解析,究其原因,是因为没有对返回的json数据做进一步的加工。其实,这里只需 要做一次对象化处理,方式不是太麻烦,就是将该字符串放于eval()中执行一次即可,这种方式也适合以普通javascipt方式获取json对象,以 下举例说明:
    $.ajax({
            type: "POST",
            url: "json_post.aspx/getdata",
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            success: function (data) {
                    var dataobj = eval("(" + data.d + ")"); //转换为json对象
                    alert(dataobj.root.length); //输出root的子对象数量 
                    $.each(dataobj.root, function (i, item) {
                          alert("name:" + item.name + ",value:" + item.value);
                    })
            }
    });

    后台方法:

       [WebMethod]
            public static string getdata()
            {
                StringBuilder str=new StringBuilder();
                str.Append("{root: [{name:'6101',value:'北京市'}, {name:'6102',value:'天津市'}, {name:'6103',value:'上海市'}, ");
                str.Append("{name:'6104',value:'重庆市'}, {name:'6105',value:'渭南市'}, {name:'6106',value:'延安市'}, {name:'6107',value:'汉中市'}, ");
                str.Append("{name:'6108',value:'榆林市'}, {name:'6109',value:'安康市'}, {name:'6110',value:'商洛市'}]}");
                return str.ToString();
            } 

    注意:1.需导入命名空间 using System.Web.Services;

            2.方法一定要静态方法,而且要有[WebMethod]的声明。

    小结:

    从服务器来的是json数组,如[{id:1,name:"小子"},{id:2,name:"大子"}] 在客户端需要用eval("("+json数组对象+")")处理一次,这样就可以把从服务器来的json数据转成javascript的json。

    vs2005

    如:单个json对象 var data=eval(data.d);
    如:数组json对象 var data=eval("("+data.d+")") ;

    注:vs2008一定要加.d才能正常将jquery的json转成javascript的json对象
    如:单个json对象 var data=eval(data.d);
    如:数组json对象 var data=eval("("+data.d+")") ;

  • 相关阅读:
    升级edk2源码的一点补充
    关于Ubuntu系统忘记密码的解决方法合集
    UEFI Shell 下的程序设计
    Windows下EDK2环境的搭建以及经典的程序设计Print Hello World !-----(Linux下的待后续熟练了再更新)
    一个刚入行的BIOS工程师的自我简介
    反爬虫,非标准的json格式解析
    Scrapy+selenium爬取简书全站-爬虫
    Scrapy
    Python 爬取豆瓣电影Top250排行榜,爬虫初试
    Linux(Ubuntu) MySQL数据库安装与卸载
  • 原文地址:https://www.cnblogs.com/ChengDong/p/2232991.html
Copyright © 2011-2022 走看看