servlet中如何获取前台ajax传入的json数据?

发布于 2022-09-05 07:52:54 字数 397 浏览 12 评论 0

我写了一个小 DEMO,大概就是前台 ajax 把 json 数组传入到后台,这个数据如下:

var data2 = {"json1":[{"sex": '男',"submit":"111"},{"sex": '女',"submit":"222"},{"sex": '男',"submit":"33"}]};

然后我要在servlet中获取他,我获取数据的代码是:

String json1 = request.getParameter("json1");

可是我获取到的值为 null,所以我想可能是我获取的方式不对,请问该如何去获取这个 json 数组,如果可以的话请再解释下获取到这个 json 数组后如何获取到里面每个 submit 的值,谢谢~

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

静待花开 2022-09-12 07:52:54

现在我自己找到解决办法了2333,虽然没人回答好尴尬啊,我的方法是,先把数据格式改下,把问题中数据data的定义修改为:
var data2 = [{"sex": '男',"submit":"111"},{"sex": '女',"submit":"222"},{"sex": '男',"submit":"33"}];
然后在ajax中用JSON.stringify方法把这个要传输的数据转化为json字符串的格式,然后在前面再加上"json1="这个字符串,即:
"json1="+JSON.stringify(data2);
然后传输过去就可以获取到了。
水平不高,有错误还请大家指出,谢谢~

冷血 2022-09-12 07:52:54

方法一:打开网络请求面板,查看请求参数,获取正确的请求参数

换做我的话,我会在浏览器中按 F12 调试,打开 network 面板查看网络请求,请求参数就能一目了然,就是下面这张图:
图片描述

方法二:检查 ajax 代码,是否填写了正确的请求参数

我猜你在后台可能是没有用正确的 key 去获取,比如举个正确的获取例子,如果 ajax 代码是这样子写:

var data2 = {"json1":[{"sex": '男',"submit":"111"},{"sex": '女',"submit":"222"},{"sex": '男',"submit":"33"}]};
$.ajax({
    cache : true,
    type : "GET",
    url : "xxxxx.do",
    data : {
        data2 : data2
    },
    async: false,
    dataType : 'json',
    error: function(data) { },
    success: function(data) { }
});

那么你后台就要以下这种方式获取,因为你指定的 key 就是 data2,是吧?

String json1 = request.getParameter("data2");
流绪微梦 2022-09-12 07:52:54

这不是json吧,不得设置ContentType么

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文