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

时间:2013-02-08 04:55:26

标签: java javascript arrays json multidimensional-array

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

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

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

"JSP2.do?jsonArrayStr="+jsonArrayStr

JSP2.jsp,我这样做 -

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

现在我如何将jsonArrayStr转换为 Java数组JSP2.jsp不包含任何JavaScript代码)

摘要 -

我在JSP1.jsp中有一个JavaScript JSON数组,我想在JSP2.jsp中作为普通的Java数组/ arraylist访问。我如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

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

[["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;
}

答案 1 :(得分: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()]);