gpt4 book ai didi

Java解析获取jquery发送的参数

转载 作者:行者123 更新时间:2023-11-30 09:36:31 24 4
gpt4 key购买 nike

编辑 也许这是更好的解释(抱歉,我比英语更了解 javascript...而且我不太了解 javascript :-)

我需要通过我的 servlet 在 java bean 中映射一个使用 jquery $.ajax 发送的复杂 javascript 对象。

这是一个用 jQuery 完成并用 Firebug 嗅探的真实示例。这是js代码:

$("#test").click(function(){
$.ajax({
url: "/server",
data: { "data1": [{key:1, val:2},{key:3, val:4}] },
type: "post",
}
});
});

如您所见,我在 $.ajax 数据中发送了一个复杂的对象,而不是一个简单的 map 。如果我检查 http 请求是如何用 Firebug 嗅探器发送的,我会得到这个 POST 参数:

Parameters application/x-www-form-urlencoded
data1[0][key] 1
data1[0][val] 2
data1[1][key] 3
data1[1][val] 4

这就是 jquery 将复杂对象转换为简单 map 的方式。我想在 java bean 中获取这个对象。谢谢。

编辑2这个:Java convert JSONObject to URL parameter似乎与我的需求恰恰相反。但是它没有答案...

最佳答案

这是 JSON,您可以使用 Gson用于将其映射到 POJO 的库。参见 this tutorial

读取 HttpServletRequest

Gson gson = new Gson();
SomeClass someClass = gson.fromJson(
new InputStreamReader(httpServletRequest.getInputStream()), SomeClass.class);

编辑

你可能想看看this topic这应该可以帮助您将 JSON 映射到 POJO(或您所说的 Java bean)。

编辑 2

尝试添加processData 参数并将其设置为false。这应该可以防止将给定的 JSON 转换为查询字符串。

$("#test").click(function(){
$.ajax({
url: "/server",
data: { "data1": [{key:1, val:2},{key:3, val:4}] },
type: "post",
processData: false
});
});

关于Java解析获取jquery发送的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10723400/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com