我想将任意复杂的数组数据发送到Java servlet,但不知道如何在servlet端读取它。这是客户方:
var data = {
name : 'Jack',
age : 30,
info : [ [1,2] , [3,4] , [5,6] ],
info2: [1,2,3]
}
$.ajax({
url: someURL,
data: data,
success: function(resp) { console.log(resp); }
});
我知道我可以使用JSON.stringify,然后在服务器端解析它,但为了这个问题,我无法更改前端代码。我如何阅读"信息"服务器端的变量使用HttpServletRequest对象?我也知道你可以为单个数组做这样的事情:
String[] info2 = request.getParameterValues("info2[]");
但这不适用于2D阵列或更复杂的阵列。
有什么想法吗?
答案 0 :(得分:1)
如果已知info
是固定长度数组
private static final int INFO_LEN = 3;
您可以在servlet中收集其值
String[][] info = new String[INFO_LEN][];
for (int i = 0; i < info.length; i++) {
info[i] = request.getParameterValues("info["+i+"][]");
}
如果事先不知道长度,请在循环中收集值,直到获得null
。