利用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+")") ;

Asp.Net_Ajax调用WebService返回Json前台获取循环解析的更多相关文章

  1. 亲测 asp.net 调用 webservice返回json

    前端脚本 $("#sure").click(function () { var tbody = $("#putsigal tbody"); var trs = ...

  2. ASP.net jQuery调用webservice返回json数据的一些问题

    之前寒假时,试着使用jQuery写了几个异步请求demo, 但是那样是使用的webform普通页面,一般应该是用 webservice 居多. 最近写后台管理时,想用异步来实现一些信息的展示和修改, ...

  3. WebService返回数据前台获取并处理JSON的相关问题

    起因: 记录这个问题的起因是一次解答网友的问题,当初自己初次接触webservice时也遇到过,但在写答案时,并没有很深的印象,只是知道webservice在后台返回值的时候,那里是有个坑的.网友问的 ...

  4. jQuery调用WebService返回JSON数据

    相信大家都比较了解JSON格式的数据对于ajax的方便,不了解的可以从网上找一下这方面的资料来看一下,这里就不多说了,不清楚的可以在网上查一下,这里只说一下因为参数设置不当引起的取不到返回值的问题. ...

  5. WebService返回json格式数据供苹果或者安卓程序调用

    1.新建一个WebService. 2. /// <summary> /// DemoToJson 的摘要说明 /// </summary> [WebService(Names ...

  6. ASP.NET Core中返回 json 数据首字母大小写问题

    ASP.NET Core中返回 json 数据首字母大小写问题 在asp.net core中使用ajax请求动态绑定数据时遇到该问题 后台返回数据字段首字母为定义的大写,返回的数据没有问题 但是在前台 ...

  7. 调用AJAX返回JSON、XML数据类型

    1.调用AJAX返回JSON数据 用下拉列表显示Nation表民族名称 主页面: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transi ...

  8. asp.net webservice返回json问题

    使用jQuery $.ajax方法请求webservice 一.方法返回值为string,将json格式的字符串返回 设置contentType为"application/json;char ...

  9. Jquery调用Webservice传递Json数组

    Jquery由于提供的$.ajax强大方法,使得其调用webservice实现异步变得简单起来,可以在页面上传递Json字符串到Webservice中,Webservice方法进行业务处理后,返回Js ...

随机推荐

  1. Bitlocker驱动器加密使用

      前言 Bitlocker驱动器加密可以将磁盘加密,确保数据的安全.如果被加密保护的磁盘是Windows Server 2012操作系统磁盘,即使他被拿到另外一台计算机启动,除非已解锁,否则无法启动 ...

  2. 【转】Nginx学习---Nginx&&Redis&&hcache三层缓存架构总结

    [原文]https://www.toutiao.com/i6594307974817120782/ 摘要: 对于高并发架构,毫无疑问缓存是最重要的一环,对于大量的高并发,可以采用三层缓存架构来实现,n ...

  3. mybatis 反向生成步骤

    Mybatis 反向生成. 反向生成的步骤: 反向生成的文件 打开文件夹显示 3.打开generator.xml文件 更改配置信息  路径一般情况下用英文  中文的路径有些会识别不了  或产生乱码 4 ...

  4. Collection中的List,Set的toString()方法

    代码:     Collection c = new ArrayList();     c.add("hello");     c.add("world"); ...

  5. XtraEditors五、SpinEdit、TimeEdit

    SpinEdit控件 此按钮控件是用来增加或减少在编辑的文本编辑区显示的数值, 该编辑值可以是一个整数或浮点数. 其 Text属性 用于设置编辑区的文本: 其 Value属性 用于获取编辑区的值: 示 ...

  6. leetcode 6. ZigZag Conversion [java]

    自己写的: if(numRows == 1) return s; int ll = s.length() / 2 + 1; Character tc[] = new Character[numRows ...

  7. [游记] Noip 2018

    飞雪连天射白鹿, 笑书神侠倚碧鸳 $ 2018/12/14 $ 经历了 \(noip\) 玩完的心态爆炸之后,还是决定稍微写一下游记记录一下\(QAQ\),以免以后就忘了. 然后打算先写个框架之后再慢 ...

  8. MP实战系列(十一)之封装方法详解(续一)

    之前写的封装方法详解,比较简要. 今天我主要讲增加和删除及其修改.查的话得单独再详讲. 增删改查,无论是Java或者C#等等,凡是对数据库操作的都离不开这四个. 一.增加方法讲解 MyBatis Pl ...

  9. UML类图简单学习 各种对象、关系UML表示法

    <大话设计模式>上面的UML类图: 类的UML表示 动物 的矩形框 表示是一个类. 类图分为三层,第一层显示类的名称,如果是抽象类,则用斜体表示:第二层是类的特性,通常就是类的字段和属性: ...

  10. C内存管理相关内容--取自高质量C++&C编程指南

    1.内存分配方式 内存分配方式有三种: (1)从静态存储区域分配.内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量,static变量. (2) 在栈上创建.在执行函数 ...