2013-02-08 70 views
2

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

我将jsonArray转换为字符串jsonArrayStr使用JSON.stringify(jsonArray)JSP1.jsp

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

"JSP2.do?jsonArrayStr="+jsonArrayStr 

JSP2.jsp,我做这个 -

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

现在我该怎样转换jsonArrayStr的Java arrayJSP2.jsp不包含任何JavaScript代码)

总结 -

我有一个JSP1.jsp一个JavaScript JSON阵列,这是我想访问作为JSP2.jsp一个正常的Java数组/数组列表。我如何实现这一目标?

+0

你是从一维数组还是二维数组开始的?你的数组只包含字符串,还是包含包含字符串的数组? JSON.stringify()在线的一维阵列上看起来像: [ “一”, “B”, “C”, “X”, “Y”, “Z”] JSON.stringify( )看起来像一个二维数组: [[“a”,“b”,“c”],[“x”],[“y”,“z”]] – sdouglass

+0

它看起来像'[[ [“a”,“b”,“c”],[“x”],[“y”,“z”]] – AlwaysALearner

+0

@ user1649068你想从jsonarray创建一个java对象数组? – Parvathy

回答

1

OK,所以你必须表示为存储在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; 
} 
0

somethingk这样

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()]); 
+0

根据我的问题,这里是什么JSONObject? 'jsonArray'或'jsonArrayStr'? – AlwaysALearner

+0

'jsonArray' ... – TheWhiteRabbit

+0

所以,你的意思是说我没有必要'stringify()'json对象吗?我将能够跨JSP页面直接访问JSONobject而不通过它们? – AlwaysALearner