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 相关文章推荐
Jquery动态改变图片IMG的src地址示例
Jun 25 Javascript
21个值得收藏的Javascript技巧
Feb 04 Javascript
js实现同一页面多个不同运动效果的方法
Apr 10 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
Sep 12 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
Oct 23 Javascript
重新理解JavaScript的六种继承方式
Mar 24 Javascript
jQuery实现表单动态添加与删除数据操作示例
Jul 03 jQuery
基于JavaScript实现一个简单的Vue
Sep 26 Javascript
小程序云开发之用户注册登录
May 18 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
Jun 26 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
Sep 03 Javascript
JavaScript如何实现监听键盘输入和鼠标监点击
Jul 20 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
一个PHP针对数字的加密解密类
2014/03/20 PHP
php实现的短网址算法分享
2014/06/20 PHP
php实现批量压缩图片文件大小的脚本
2014/07/04 PHP
php采集内容中带有图片地址的远程图片并保存的方法
2015/01/03 PHP
PHP面向对象详解(三)
2015/12/07 PHP
php ajax异步读取rss文档数据
2016/03/29 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
表格单元格交错着色实现思路及代码
2013/04/01 Javascript
jQuery实现可拖动的浮动层完整代码
2013/05/27 Javascript
javascript实现捕捉键盘上按下的键
2015/05/05 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
2015/05/25 Javascript
Backbone.js的一些使用技巧
2015/07/01 Javascript
jQuery实现图片走马灯效果的原理分析
2016/01/16 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
2016/05/10 Javascript
使用jQuery.Qrcode插件在客户端动态生成二维码并添加自定义Logo
2016/09/01 Javascript
微信小程序 选项卡的简单实例
2017/05/24 Javascript
Javascript继承机制详解
2017/05/30 Javascript
详解Web使用webpack构建前端项目
2017/09/23 Javascript
微信小程序实现红包功能(后端PHP实现逻辑)
2018/07/11 Javascript
详解小程序缓存插件(mrc)
2018/08/17 Javascript
Node 模块原理与用法详解
2020/05/13 Javascript
vue props 一次传多个值实例
2020/07/22 Javascript
手把手教你用python抢票回家过年(代码简单)
2018/01/21 Python
Python中文件的读取和写入操作
2018/04/27 Python
Python叠加两幅栅格图像的实现方法
2019/07/05 Python
Python sorted排序方法如何实现
2020/03/31 Python
Python图片处理模块PIL操作方法(pillow)
2020/04/07 Python
html5中audio支持音频格式的解决方法
2018/08/24 HTML / CSS
大学在校生求职信范文
2013/11/21 职场文书
《孙权劝学》教学反思
2014/04/23 职场文书
公司自我介绍演讲稿
2014/08/21 职场文书
《改造我们的学习》心得体会
2014/11/07 职场文书
实施意见格式范本
2015/06/05 职场文书
校运会通讯稿
2015/07/18 职场文书
我的中国梦心得体会范文
2016/01/05 职场文书
Github 使用python对copilot做些简单使用测试
2022/04/14 Python