jquery ajax data:json的正确数据格式到底是什么,为何我这个提示错误!

html代码:
图片说明

后台方法代码:
图片说明

提示的错误信息:
图片说明

11个回答

前端传的json和后端接收的方式都要改下:
json数据改成:
var data ={
"list":[{"Name":"铁","id":"1"},{"Name":"镁","id":"2"},{"Name":"锌","id":"3"},{"Name":"铜","id":"4"}]
};
后端接收:
exportExcel(Map data){
Object list = data.get("list");// list 为一个List类型
...//处理list
}

hmy123cq3
道斯 也谢谢你的回答,给了我灵感,让我往后端接收的方向去研究。
大约 2 年之前 回复
hmy123cq3
道斯 我是按照这个链接里的修改的,就可以了。https://www.cnblogs.com/RascallySnake/archive/2010/04/08/1707521.html
大约 2 年之前 回复

webservice传递这种字符串,你那样是数字肯定不对了吗

 data={"querys1":"2","querys2":"3"}''

除非你改成下面的接收数组

 public class QueryItem { public string querys1, querys2; }
.....exportexcel(System.Collections.Generic.List<QueryItem>).....
showbo
支付宝加好友偷能量挖,胡杨在等着我的召唤 回复hmy123cq3: 你的参数不是数组,是数组才能用[{...},....]这种,不是就传{....}这种
大约 2 年之前 回复
hmy123cq3
道斯 1.我用这个传就没问题,data = '{"querys1":"2","querys2":"3"}'; 2.用这个传就有问题,data = '[{"querys1":"2","querys2":"3"},{"querys1":"44","querys2":"55"}]'; 求解答啊? 1中就是相当于一组。 2中就相当于多组,为啥多组就提示error:[object][object]
大约 2 年之前 回复
showbo
支付宝加好友偷能量挖,胡杨在等着我的召唤 data='{"querys1":"2","querys2":"3"}'
大约 2 年之前 回复

有可能是同名问题吧?建议你换个参数名试试

1.我用这个传就没问题,data = '{"querys1":"2","querys2":"3"}';
2.用这个传就有问题,data = '[{"querys1":"2","querys2":"3"},{"querys1":"44","querys2":"55"}]';
求解答啊?
1中就是相当于一组。
2中就相当于多组,为啥多组就提示error:[object][object]

你第二个是数组呀--两组入参类型不同的,后台接收处理的时候第一个可以转化为map,
第二个就只能转化为List,你可以把第一外面也加个中括号才能表示传入的是一组数据,就和第二个类型一致了

Tlear
TearYourSadness 多行多列可以传过去的,不过后台对应解析的server代码需要改变,因为你之前传的是map,当然你也可以jsonarray传,你试一试把请求头content-type换成text试一试
大约 2 年之前 回复
hmy123cq3
道斯 我是想把前台的htmltable中获取的多行多列的值,搞成数组,传递给后台用。就是穿不过去
大约 2 年之前 回复

不不不,他给你返回的是jsonArray,不是jsonObject

var data0 = [{"Name":"铁","id":"1",},{"Name":"镁","id":"2"},{"Name":"锌","id":"3"},{"Name":"铜","id":"4"}]; 类似这种试一试

hmy123cq3
道斯 如果是一组就没问题var data0 ={"Name":"镁","id":"2"}
大约 2 年之前 回复
hmy123cq3
道斯 就是这种报错,我也是奇了怪了
大约 2 年之前 回复

对象:var foo={a:1,b:2}
对象数组:[{a:1,b:2},{c:3,d:4}]

Tlear
TearYourSadness 要不你留个联系方式,直接扣扣或者微信上给你解答,csdn没有pc客户端,查看回复比较不方便
大约 2 年之前 回复
Tlear
TearYourSadness 你把请求头改成text/html的然后第一种情况也加上一个中括号表示只有一个元素的数组。再重写一下server就可以了。不愿意那么做的话那你可以在date里面再包一层json然后到代码里解析
大约 2 年之前 回复
hmy123cq3
道斯 按照你说的,对象:var foo={a:1,b:2}这种形式可以传到后台。但是对象数组:[{a:1,b:2},{c:3,d:4}]这种就报错。
大约 2 年之前 回复

{
"data": {},
"isSuccess": true,
"responseCode": "string",
"responseMessage": "string",
"warningMessage": "string"
}

data={
"变量1":"值1",
"变量2":6
}
变量要有引号,数值可以没有

hmy123cq3
道斯 现在已经不是格式的问题了!是为啥jq ajax json格式不支持,二维数组的形式
大约 2 年之前 回复
共11条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问