Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将JSON数组[array[String]]转换为Java数组_Java_Javascript_Arrays_Json_Multidimensional Array - Fatal编程技术网

将JSON数组[array[String]]转换为Java数组

将JSON数组[array[String]]转换为Java数组,java,javascript,arrays,json,multidimensional-array,Java,Javascript,Arrays,Json,Multidimensional Array,在我的JSP1.jsp中有一个名为jsonArray的JavaScript JSON数组[array[String]] 我正在使用JSON.stringify(jsonArray)中的JSP1.jsp将jsonArray转换为字符串jsonArrayStr 我以这种方式调用另一个JSPJSP2.JSP时,将jsonArrayStr作为参数传递- "JSP2.do?jsonArrayStr="+jsonArrayStr 在JSP2.jsp中,我正在这样做- String jsonArrayStr

在我的
JSP1.jsp
中有一个名为
jsonArray
的JavaScript JSON数组[array[String]]

我正在使用
JSON.stringify(jsonArray)
中的
JSP1.jsp
jsonArray
转换为字符串
jsonArrayStr

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

"JSP2.do?jsonArrayStr="+jsonArrayStr
JSP2.jsp
中,我正在这样做-

String jsonArrayStr = request.getParameter("jsonArrayStr");
现在如何将
jsonArrayStr
转换为Java数组
JSP2.jsp
不包含任何JavaScript代码)

总结-

我在
JSP1.jsp
中有一个JavaScript JSON数组,我想作为
JSP2.jsp
中的普通Java数组/arraylist访问它。我如何做到这一点?

像这样的事情

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()]);
ArrayList strings=new ArrayList();
JSONArray JSONArray=(JSONArray)jsonObject;
如果(jsonArray!=null){
int len=jsonArray.length();

对于(int i=0;iOK),您有一个二维字符串数组,表示为JSON,如下所示,存储在Java字符串中:

[["a", "b", "c"],["x"],["y","z"]]
您需要以某种方式将该值解析或“反序列化”为Java字符串[]。您可以使用类似于或的库,也可以尝试手动执行。手动可能有点棘手,但并非不可能。json.org库非常简单,可能已经足够好了。代码如下(我没有尝试/测试过):

JSONArray-JSONArray=newjsonarray(jsonArrayStr);//JSONArray来自json.org库
String[][]arrayOfArrays=新字符串[jsonArray.length()][];
for(int i=0;i
根据我的问题,这里的JSONObject是什么?
jsonArray
jsonArrayStr
?所以,你的意思是说我没有必要
字符串化()
json对象?我将能够跨JSP页面直接访问JSONobject,而无需传递它们?是的,直接将jsonArray作为请求参数传递给jsp2,并在jsp2中如上所述:)您是在谈论
net.sf.json.jsonArray
这就是我如何将数组值传递给另一个JSP的方式,正如u所说-
“JSP2.do?jsonArray=“+jsonArray;”
您是从一维数组开始,还是从二维数组开始?您的数组只包含字符串,还是包含包含字符串的数组?e一维数组上的JSON.stringify()看起来像:[“a”、“b”、“c”、“x”、“y”、“z”]JSON.stringify()在二维数组上,它看起来像:[“a”,“b”,“c”],[“x”],[“y”,“z”]],它看起来像
[“a”,“b”,“c”],[“x”],[“y”,“z”]
@user1649068您想从jsonarray创建java对象数组吗?
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;
}