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(动态数组)构建,前台便能自动识别并接收。

posted @ 2011-12-01 19:59  杜宏宇  阅读(2517)  评论(0编辑  收藏  举报