jq ajax返回数组,示例jquery使用ajax调用Webservice返回Json数组

本文介绍强大jquery使用ajax方法来调用Webservice服务做一个实例。

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

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

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

}

});

}

再来看下服务端代码

///[WebMethod] [ScriptMethod(ResponseFormat=ResponseFormat.Json)]publicstringImportStu(Dictionary[]students) {if(students.Length==0) {return"没有任何数据!"; }else{try{foreach(Dictionarystuinstudents) {//构造一个新的Student对象。Student student=newStudent();//为新构造的Student对象属性赋值。foreach(stringkeyinstu.Keys) {switch(key) {case"name": student.Name=stu[key];break;case"sex": student.Sex=stu[key];break;case"age":intage;if(Int32.TryParse(stu[key],outage)) { student.Age=age; }else{ student.Age=0; }break;default:break; } } }return"导入学生成功!"; }catch{thrownewException("导入学生失败!"); } } }

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值