2

我有一个 JavaScript JSON array[array[String]]jsonArray在我的JSP1.jsp.

我正在使用in转换jsonArray为字符串。jsonArrayStrJSON.stringify(jsonArray)JSP1.jsp

我在以这种方式jsonArrayStr调用另一个 JSP 时作为参数传递 -JSP2.jsp

"JSP2.do?jsonArrayStr="+jsonArrayStr

JSP2.jsp,我正在这样做-

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

现在如何转换jsonArrayStrJava 数组JSP2.jsp不包含任何 JavaScript 代码)

概括-

我在 a 中有一个 JavaScript JSON 数组JSP1.jsp,我想在JSP2.jsp. 我如何实现这一目标?

4

2 回答 2

1

好的,所以你有一个表示为 JSON 的二维字符串数组,像这样存储在 Java 字符串中:

[["a", "b", "c"],["x"],["y","z"]]

您需要以某种方式将该值解析或“反序列化”为 Java String[][]。您可以使用http://www.json.org/java/index.htmlhttp://jackson.codehaus.org/之类的库,也可以尝试手动操作。手动可能有点棘手,但并非不可能。json.org 库非常简单,可能已经足够好了。代码将是这样的(我没有尝试/测试过):

JSONArray jsonArray = new JSONArray(jsonArrayStr); // JSONArray is from the json.org library
String[][] arrayOfArrays = new String[jsonArray.length()][];
for (int i = 0; i < jsonArray.length(); i++) {
    JSONArray innerJsonArray = (JSONArray) jsonArray.get(i);
    String[] stringArray = new String[innerJsonArray.length()];
    for (int j = 0; j < innerJsonArray.length(); j++) {
        stringArray[j] = innerJsonArray.get(j);
    }
    arrayOfArrays[i] = stringArray;
}
于 2013-02-09T00:50:01.727 回答
0

像这样的东西

ArrayList<String> strings= new ArrayList<String>();     
JSONArray jsonArray = (JSONArray)jsonObject; 
if (jsonArray != null) { 
   int len = jsonArray.length();
   for (int i=0;i<len;i++){ 
    list.add(jsonArray.get(i).toString());
   } 
} 

String[] Stringarray = strings.toArray(new String[strings.size()]);
于 2013-02-08T04:59:00.640 回答