如何在$.ajax 的data里面传json格式数据

qinzhenyuqzy 2013-08-18 05:17:23
问题一
jsondata={"Participant":[{"Name_1":"1","Position_1":"1","Tel_1":"1","Mobile_1":"1","Ohter_1":"1"},{"Name_2":"1","Position_2":"1","Tel_2":"2","Mobile_2":"2","Ohter_2":"2"}]}

$.ajax({
type: "POST",
contentType: "application/json;charset=utf-8",
url: "ApplyEdit.aspx/SaveParticipant",
data: 这里该怎么写,
dataType: "json",
complete: function () { },
success: function (result) {
},
error: function (result, status) { }
});
谁能告诉我这个 data:这里该如何写,我要把jsondata传到后台去

问题二
平时用的时候我有时候这么写就可以 data:{"name":name,"sex":sex},
有点时候又必须要这样写才行才能传值成功 data:"{\"name\":\""+name+"\",\"sex\":\""+sex+"\"}",
一直不明白为什么,望各位大大帮忙解释下,不胜感激

...全文
74176 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qinzhenyuqzy 2013-08-20
  • 打赏
  • 举报
回复
谢谢各位,5楼的比较符合我的要求
txhs 2013-08-19
  • 打赏
  • 举报
回复
可否共享一个工程,学习一下子
tony4geek 2013-08-18
  • 打赏
  • 举报
回复
用&符号链接成字符串后台接受方法不错。同意楼上。
ftiger 2013-08-18
  • 打赏
  • 举报
回复
好吧,小贩思路应当比较正确

	var jsondata={"Participant":[{"Name_1":"1","Position_1":"1","Tel_1":"1","Mobile_1":"1","Ohter_1":"1"},{"Name_2":"1","Position_2":"1","Tel_2":"2","Mobile_2":"2","Ohter_2":"2"}]} ;
	
	var exdata= jQuery.extend({}, jsondata.Participant[0], jsondata.Participant[1]);
	console.log(exdata);
	
	$.ajax({
                url: "/tt.jsp",
                type: "GET",
                data:exdata,
                beforeSend: function(){
                    
                },
                success: function(d){
                   
                }
            });

街头小贩 2013-08-18
  • 打赏
  • 举报
回复

var jsondata={"Participant":[{"Name_1":"1","Position_1":"1","Tel_1":"1","Mobile_1":"1","Ohter_1":"1"},{"Name_2":"1","Position_2":"1","Tel_2":"2","Mobile_2":"2","Ohter_2":"2"}]} ;
var dataString="";
for(var i=0; i<jsondata.Participant.length; i++){
for(var e in jsondata.Participant[i]){
dataString += e +"="+ jsondata.Participant[i][e] + "&" ;
}
}
$.ajax({
url: "/first.php",
type: "GET",
data: dataString.substring(0,dataString.length-1),
beforeSend: function(){
$('#btn').attr({'disabled':'true','value':'send data'});
},
success: function(d){
$('input[name=onC]').val(d);
}
});



ftiger 2013-08-18
  • 打赏
  • 举报
回复
jQuery 没有封装 json对象到json字符串的操作,你要在网上找一个这样的函数,然后 date:{"Participant":转换后的值} 随便找的转换函数,没仔细测试过
var O2String = function (O) {
        //return JSON.stringify(jsonobj);

        var S = [];
        var J = "";
        if (Object.prototype.toString.apply(O) === '[object Array]') {
            for (var i = 0; i < O.length; i++)
                S.push(O2String(O[i]));
            J = '[' + S.join(',') + ']';
        }
        else if (Object.prototype.toString.apply(O) === '[object Date]') {
            J = "new Date(" + O.getTime() + ")";
        }
        else if (Object.prototype.toString.apply(O) === '[object RegExp]' || Object.prototype.toString.apply(O) === '[object Function]') {
            J = O.toString();
        }
        else if (Object.prototype.toString.apply(O) === '[object Object]') {
            for (var i in O) {
                O[i] = typeof (O[i]) == 'string' ? '"' + O[i] + '"' : (typeof (O[i]) === 'object' ? O2String(O[i]) : O[i]);
                S.push(i + ':' + O[i]);
            }
            J = '{' + S.join(',') + '}';
        }

        return J;
	};
  • 打赏
  • 举报
回复
将json对象转对对应的json格式的字符串就行了,下载:json2.js导入页面中
<script src="http://www.coding123.net/rardownload/20130106/20130106170832648.js"></script>
<script>
var jsondata={"Participant":[{"Name_1":"1","Position_1":"1","Tel_1":"1","Mobile_1":"1","Ohter_1":"1"},{"Name_2":"1","Position_2":"1","Tel_2":"2","Mobile_2":"2","Ohter_2":"2"}]} 
$.ajax({
                type: "POST",
                contentType: "application/json;charset=utf-8",
                url: "ApplyEdit.aspx/SaveParticipant",
                data: JSON.stringify(jsondata),//////////////////////
                dataType: "json",
                complete: function () { },
                success: function (result) {
                },
                error: function (result, status) { }
            });
</script>
传递json对象jquery会帮你转换为键值对的格式,就是xx=xx&xxxx=xxxxx... 有些时候调用webservice的方法,需要json格式的字符串,所以不能传递json对象,而是json格式的字符串,所以要传递字符串 参考:jQuery调用WebService返回JSON数据
qinzhenyuqzy 2013-08-18
  • 打赏
  • 举报
回复
引用 2 楼 xiaofanku 的回复:
问题一:都要传进过去吗?还是只传Participant的值
传Participant的值
qinzhenyuqzy 2013-08-18
  • 打赏
  • 举报
回复
引用 1 楼 xiaofanku 的回复:
data:{"name":name,"sex":sex}, data的值是一个对象 data:"{\"name\":\""+name+"\",\"sex\":\""+sex+"\"}", data的值是一个字符串
那具体什么时候应该传一个对象,什么时候应该传一个字符串呢?
街头小贩 2013-08-18
  • 打赏
  • 举报
回复
问题一:都要传进过去吗?还是只传Participant的值
街头小贩 2013-08-18
  • 打赏
  • 举报
回复
data:{"name":name,"sex":sex}, data的值是一个对象 data:"{\"name\":\""+name+"\",\"sex\":\""+sex+"\"}", data的值是一个字符串

52,792

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧