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 ajax提交表单数据的两种实现方法
Apr 29 Javascript
jquery 层次选择器siblings与nextAll的区别介绍
Aug 02 Javascript
js出生日期 年月日级联菜单示例代码
Jan 10 Javascript
一个CSS+jQuery实现的放大缩小动画效果
Feb 19 Javascript
如何使用Vuex+Vue.js构建单页应用
Oct 27 Javascript
Extjs让combobox写起来简洁又漂亮
Jan 05 Javascript
JS中把函数作为另一函数的参数传递方法(总结)
Jun 28 Javascript
浅谈微信页面入口文件被缓存解决方案
Sep 29 Javascript
使用Jenkins部署React项目的方法步骤
Mar 11 Javascript
微信小程序 云开发模糊查询实现解析
Sep 02 Javascript
vue+element-ui表格封装tag标签使用插槽
Jun 18 Javascript
vue组件添加事件@click.native操作
Oct 30 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依赖注入原理与用法分析
2018/08/21 PHP
PHP执行普通shell命令流程解析
2020/08/24 PHP
csdn 论坛技术区平均给分功能
2009/11/07 Javascript
非常强大的 jQuery.AsyncBox 弹出对话框插件
2011/08/29 Javascript
jQuery+css+html实现页面遮罩弹出框
2013/03/21 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
js 通过html()及text()方法获取并设置p标签的显示值
2014/05/14 Javascript
jquery中表单 多选框的一种巧妙写法
2015/09/06 Javascript
深入理解setTimeout函数和setInterval函数
2016/05/20 Javascript
js实现表格筛选功能
2017/01/18 Javascript
深入理解React中何时使用箭头函数
2017/08/23 Javascript
利用ES6实现单例模式及其应用详解
2017/12/09 Javascript
Vue使用枚举类型实现HTML下拉框步骤详解
2018/02/05 Javascript
React组件中的this的具体使用
2018/02/28 Javascript
Vue.JS实现垂直方向展开、收缩不定高度模块的JS组件
2018/06/19 Javascript
JS基于ES6新特性async await进行异步处理操作示例
2019/02/02 Javascript
今天,小程序正式支持 SVG
2019/04/20 Javascript
vue学习笔记之作用域插槽实例分析
2020/02/01 Javascript
vuex存取值和映射函数使用说明
2020/07/24 Javascript
js+canvas实现转盘效果(两个版本)
2020/09/13 Javascript
妙用itchat! python实现久坐提醒功能
2019/11/25 Python
python FTP批量下载/删除/上传实例
2019/12/22 Python
Python 过滤错误log并导出的实例
2019/12/26 Python
Roxy美国官网:澳大利亚冲浪、滑雪健身品牌
2016/07/30 全球购物
苹果Mac升级:MacSales.com
2017/11/20 全球购物
Jar包的作用是什么
2014/03/30 面试题
国际经济贸易专业推荐信
2013/11/06 职场文书
计算机专业推荐信范文
2013/11/20 职场文书
单位消防安全责任书
2014/07/23 职场文书
2014公司党员自我评价范文
2014/09/11 职场文书
见习报告格式范文
2014/11/08 职场文书
2015年仓管员工作总结
2015/04/21 职场文书
工作感想范文
2015/08/07 职场文书
家访教师心得体会
2016/01/23 职场文书
js不常见操作运算符总结
2021/11/20 Javascript
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript