jquery 与 webservice 之间json的传送
1、jquery发送json,webservice接收json
前台:
<script type="text/javascript">
$(function () {
var js_Arr = new Array(); //定义数组
js_Arr.push("{ name: '张三', salary: '50' }, { name: '李四', salary: '60' }, { name: '王五', salary: '70' }");
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "WebService1.asmx/receive_Json",
data: "{arr_Str:[" + js_Arr + "]}",//传送数组
dataType: 'json',
success: function (result) {
var resultD = result.d; //返回结果
alert(resultD);
},
error: function (e) { alert(e.responseText) }
});
});
</script>
Webservice1后台(用Dictionnary接受前台传过来的数组):
监视信息如下:
结果输出如下:
2、webservice发送json,jquery接收json
后台:
//返回数组(用ArrayList)
[WebMethod]
public ArrayList send_Json()
{
this.Context.Response.Cache.SetNoStore();//每次都重新获取数据,禁止使用缓存
ArrayList al = new ArrayList();//创建动态数组
al.Add("{张三:'10'}");
al.Add("{李四:'20'}");
al.Add("{王五:'30'}");
al.Add("{赵六:'40'}");
return al;//返回动态数组
}
前台:
$(function () {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "WebService1.asmx/send_Json",
data: "{}", //传送数组
dataType: 'json',
success: function (result) {
var resultD = result.d; //返回结果
alert(resultD);
},
error: function (e) { alert(e.responseText) }
});
});
结果输出如下:
总结:
一、前台向后台发送json:
①前台需要自行构建json结构
②用jquery $ajax方法传输时date后面紧跟传入的数组参数,该参数两侧一定要加中括号
data: "{arr_Str:[" + js_Arr + "]}",//传送数数,中括号一定要加
③后台需要使用Dictionary(字典)接收
二、后台向前台发送json:
后台直接用ArrayList(动态数组)构建,前台便能自动识别并接收。