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 常见学习网站与参考书
Nov 09 Javascript
多浏览器支持的右下角浮动窗口
Apr 01 Javascript
javascript中字符串替换函数replace()方法与c# 、vb 替换有一点不同
Jun 25 Javascript
javascript中负数算术右移、逻辑右移的奥秘探索
Oct 17 Javascript
深入浅析JavaScript中对事件的三种监听方式
Sep 29 Javascript
jQuery插件form-validation-engine正则表达式操作示例
Feb 09 Javascript
jquery tmpl模板(实例讲解)
Sep 02 jQuery
JavaScript中EventLoop介绍
Jan 22 Javascript
react+ant design实现Table的增、删、改的示例代码
Dec 27 Javascript
使用JavaScript解析URL的方法示例
Mar 01 Javascript
JavaScript中的类型检查
Feb 03 Javascript
vue点击弹窗自动触发点击事件的解决办法(模拟场景)
May 25 Vue.js
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通过session id 实现session共享和登录验证的代码
2012/06/03 PHP
php中++i 与 i++ 的区别
2012/08/08 PHP
PHP开启opcache提升代码性能
2015/04/26 PHP
PHP串行化与反串行化实例分析
2016/12/27 PHP
jquery+ajax每秒向后台发送请求数据然后返回页面的代码
2011/01/17 Javascript
如何获取JQUERY AJAX返回的JSON结果集实现代码
2012/12/10 Javascript
js动态创建标签示例代码
2014/06/09 Javascript
jQuery中animate用法实例分析
2015/03/09 Javascript
点评js异步加载的4种方式
2015/12/22 Javascript
jQuery实现的简单排序功能示例【冒泡排序】
2017/01/13 Javascript
js弹出窗口简单实现代码
2017/03/22 Javascript
webstorm添加vue.js支持的方法教程
2017/07/05 Javascript
vue路由拦截及页面跳转的设置方法
2018/05/24 Javascript
vue 使用自定义指令实现表单校验的方法
2018/08/28 Javascript
玩转Koa之核心原理分析
2018/12/29 Javascript
node全局变量__dirname与__filename的区别
2019/01/14 Javascript
Webpack4 使用Babel处理ES6语法的方法示例
2019/03/07 Javascript
js如何验证密码强度
2020/03/18 Javascript
深入浅析vue全局环境变量和模式
2020/04/28 Javascript
Python open读写文件实现脚本
2008/09/06 Python
python轻松查到删除自己的微信好友
2016/01/10 Python
Python实现约瑟夫环问题的方法
2016/05/03 Python
python保留小数位的三种实现方法
2020/01/07 Python
HTML5实现页面切换激活的PageVisibility API使用初探
2016/05/13 HTML / CSS
英国最大的百货公司:Harrods
2016/08/18 全球购物
IFCHIC台湾:欧美国际设计师品牌
2019/05/18 全球购物
Java中的类包括什么内容?设计时要注意哪些方面
2012/05/23 面试题
销售心得体会
2014/01/02 职场文书
初婚初育证明
2014/01/14 职场文书
建议书怎么写
2014/03/12 职场文书
清扬洗发水广告词
2014/03/14 职场文书
产品开发计划书
2014/04/27 职场文书
2014年度工作总结报告
2014/12/15 职场文书
先进个人总结范文
2015/02/15 职场文书
青年志愿者活动感想
2015/08/07 职场文书
Java8 CompletableFuture 异步回调
2022/04/28 Java/Android