jQuery调用Webservice传递json数组的方法


Posted in Javascript onAugust 06, 2016

本文实例讲述了jQuery调用Webservice传递json数组的方法。分享给大家供大家参考,具体如下:

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

这一切都非常的简单,今天要学习的并非这些。我们在实际处理业务过程中,会发现往往页面要传递给webservice 的并非一个或多个字符串,有时候需要传递的是一个组合数据,如这样的一组数据:

{'Employee': [{'name':'John','sex':'man','age':'25'},{'name':'Tom','sex':'man','age':'21'}]}

客户端将这样的Json字符串作为$.ajax方法的data参数是没有问题的,然而,服务端的webservice该如何去写接收参数却成为了一个问题。在百度、谷歌了一番后,只发现提问的却没有回答的。索性还是自己去研究吧,发现其实Employee对象首先是一个数组,其次数组的每一项都是一个Dictionary<string,string>字典类型。于是我尝试在服务端使用Dictionary<string,string>[] Employee来接收客户端传递的参数,一切如我所料,成功!

客户端代码如下:

//JQuery 调用webService导入数据
function LoadData() {
    var studentData = CollectionData();
    $.ajax({
      url: "ImportDataService.asmx/ImportStu",
      type: "post",
      contentType: "application/json;charset=utf-8",
      dataType: "json",
      data: "{'students':[{'name':'KoBe ','sex':'boy','age':'20'},{'name':'Mary','sex':'girl','age':'19'}]}",
      success: function(result) {
        alert(result.d);
      },
      error: function(e) {
        alert(e.responseText);
      }
    });
}

服务端代码如下:

/// <summary>
///
/// </summary>
/// <param name="students"></param>
/// <returns></returns>
[WebMethod]
[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
public string ImportStu(Dictionary<string,string> []students)
{
  if (students.Length == 0)
  {
    return "没有任何数据!";
  }
  else
  {
    try
    {
      foreach (Dictionary<string, string> stu in students)
      {
        //构造一个新的Student对象。
        Student student = new Student();
        //为新构造的Student对象属性赋值。
        foreach (string key in stu.Keys)
        {
          switch (key)
          {
            case "name":
              student.Name = stu[key];
              break;
            case "sex":
              student.Sex = stu[key];
              break;
            case "age":
              int age;
              if (Int32.TryParse(stu[key], out age))
              {
                student.Age = age;
              }
              else
              {
                student.Age = 0;
              }
              break;
            default:
              break;
          }
        }
      }
      return "导入学生成功!";
    }
    catch
    {
      throw new Exception("导入学生失败!");
    }
  }
}

需要注意的是,服务端参数名需要和客户端Json数组的key值相同,如上代码中,参数名都为students。

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
ajax更新数据后,jquery、jq失效问题
Mar 16 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
Dec 14 Javascript
基于datagrid框架的查询
Apr 08 Javascript
JavaScript操纵窗口的方法小结
Jun 28 Javascript
jquery中对于批量deferred的处理方法
Jan 22 Javascript
JS+CSS模拟可以无刷新显示内容的留言板实例
Mar 03 Javascript
Bootstrap3 多选和单选框(checkbox)
Dec 29 Javascript
基于canvas粒子系统的构建详解
Aug 31 Javascript
AngularJS标签页tab选项卡切换功能经典实例详解
May 16 Javascript
基于jQuery使用Ajax动态执行模糊查询功能
Jul 05 jQuery
小程序server请求微信服务器超时的解决方法
May 21 Javascript
JavaScript和TypeScript中的void的具体使用
Sep 12 Javascript
Google 地图API Map()构造器详解
Aug 06 #Javascript
Google 地图API资料整理及详细介绍
Aug 06 #Javascript
jquery自动补齐功能插件flexselect用法示例
Aug 06 #Javascript
Google 地图类型详解及示例代码
Aug 06 #Javascript
Google 地图控件集详解及实例代码
Aug 06 #Javascript
Google 地图事件实例讲解
Aug 06 #Javascript
Google 地图叠加层实例讲解
Aug 06 #Javascript
You might like
一个数据采集类
2007/02/14 PHP
关于Iframe如何跨域访问Cookie和Session的解决方法
2013/04/15 PHP
PHP调用.NET的WebService 简单实例
2015/03/27 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
在jQuery1.5中使用deferred对象 着放大镜看Promise
2011/03/12 Javascript
suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
2011/12/20 Javascript
javascript中方便增删改cookie的一个类
2012/10/11 Javascript
Javascript保存网页为图片借助于html2canvas库实现
2014/09/05 Javascript
完美兼容IE,chrome,ff的设为首页、加入收藏及保存到桌面js代码
2014/12/17 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
2015/09/25 Javascript
js实现动态加载脚本的方法实例汇总
2015/11/02 Javascript
获取input标签的所有属性的方法
2016/06/28 Javascript
关于javascript中限定时间内防止按钮重复点击的思路详解
2016/08/16 Javascript
原生js实现轮播图
2017/02/27 Javascript
jQuery实现的中英文切换功能示例
2019/01/11 jQuery
解决Idea、WebStorm下使用Vue cli脚手架项目无法使用Webpack别名的问题
2019/10/11 Javascript
在vue中实现echarts随窗体变化
2020/07/27 Javascript
Vue+element+cookie记住密码功能的简单实现方法
2020/09/20 Javascript
微信跳一跳小游戏python脚本
2018/01/05 Python
Python实现将json文件中向量写入Excel的方法
2018/03/26 Python
简单实现Python爬取网络图片
2018/04/01 Python
python实现随机调用一个浏览器打开网页
2018/04/21 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
详解Python 定时框架 Apscheduler原理及安装过程
2019/06/14 Python
python + selenium 刷B站播放量的实例代码
2020/06/12 Python
HTML5实现的震撼3D焦点图动画的示例代码
2019/09/26 HTML / CSS
澳洲的服装老品牌:SABA
2018/02/06 全球购物
美国婴儿和儿童家具网上商店:ABaby.com
2018/07/02 全球购物
Tostadora意大利:定制T恤
2019/04/08 全球购物
高中生学习总结的自我评价范文
2013/10/13 职场文书
药品质量检测应届生求职信
2013/11/14 职场文书
中西医专业毕业生职业规划书
2014/02/24 职场文书
2014年污水处理厂工作总结
2014/12/19 职场文书
建筑工程材料员岗位职责
2015/04/11 职场文书
赢在中国观后感
2015/06/02 职场文书
2015年音乐教学工作总结
2015/07/22 职场文书