我的JSP1.jsp
中有一个名为jsonArray
的JavaScript JSON数组[array[String]]。
我正在使用JSP1.jsp
中的JSON.stringify(jsonArray)
将jsonArray
转换为字符串jsonArrayStr
。
我将jsonArrayStr
作为参数传递,同时以这种方式调用另一个JSP JSP2.jsp
-
"JSP2.do?jsonArrayStr="+jsonArrayStr
在JSP2.jsp
中,我正在做这个-
String jsonArrayStr = request.getParameter("jsonArrayStr");
现在如何将jsonArrayStr
转换为Java数组(JSP2.jsp
不包含任何JavaScript代码)
摘要-
我在JSP1.jsp
中有一个JavaScriptJSON数组,我想在JSP2.jsp
中作为一个普通的Java数组/数组列表访问它。我该如何做到这一点?
好的,所以您有一个二维字符串数组,用JSON表示,存储在Java String:中
[["a", "b", "c"],["x"],["y","z"]]
您需要以某种方式将该值解析或"反序列化"为Java String[][]。你可以从中使用类似的库http://www.json.org/java/index.html或http://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;
}
类似的东西
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()]);