如何在Java Servlet中从jQuery读取2D数组?

时间:2015-09-27 21:54:49

标签: javascript java jquery arrays servlets

我想将任意复杂的数组数据发送到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阵列或更复杂的阵列。

有什么想法吗?

1 个答案:

答案 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