2

jsonArrayで呼び出された JavaScript JSON array[array[String]] がありますJSP1.jsp

inを使用しjsonArrayて文字列に変換しています。jsonArrayStrJSON.stringify(jsonArray)JSP1.jsp

この方法jsonArrayStrで別の JSP を呼び出すときに、パラメーターとして渡しています。JSP2.jsp

"JSP2.do?jsonArrayStr="+jsonArrayStr

で、私はこれJSP2.jspをやっています-

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

Java配列jsonArrayStrに変換するにはどうすればよいですか(JavaScriptコードは含まれていません)JSP2.jsp

概要-

に JavaScript JSON 配列がありJSP1.jsp、これに通常の Java 配列/配列リストとしてアクセスしたいと考えていますJSP2.jsp。どうすればこれを達成できますか?

4

2 に答える 2

1

これで、Java String に格納された次のような JSON として表された文字列の 2 次元配列ができました。

[["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 に答える