2013-02-08 4 views
2

J'ai un tableau JSON JavaScript [tableau [chaîne]] appelé jsonArray dans mon JSP1.jsp.tableau JSON [array [chaîne]] pour tableau Java

Je convertis jsonArray en une chaîne jsonArrayStr en utilisant JSON.stringify(jsonArray) en JSP1.jsp.

Je passe jsonArrayStr comme paramètre tout en appelant une autre JSP JSP2.jsp ce Way-

"JSP2.do?jsonArrayStr="+jsonArrayStr 

En JSP2.jsp, je fais this-

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

Maintenant, comment puis-je convertir jsonArrayStr à Java tableau (JSP2.jsp ne contient pas de code JavaScript)

Summary-

J'ai un tableau JSON JavaScript dans un JSP1.jsp, que je veux accéder à un tableau Java normal/arraylist dans JSP2.jsp. Comment puis-je y parvenir?

+0

Commencez-vous avec un tableau unidimensionnel, ou un tableau bidimensionnel? Votre tableau contient-il uniquement des chaînes ou contient-il des tableaux contenant des chaînes? JSON.stringify() sur la matrice de e à une dimension ressemblerait: [ "a", "b", "c", "x", "y", "z"] JSON.stringify () sur un tableau bidimensionnel ressemblerait à: [["a", "b", "c"], ["x"], ["y", "z"]] – sdouglass

+0

il ressemble à '[[ ["a", "b", "c"], ["x"], ["y", "z"]] ' – AlwaysALearner

+0

@ utilisateur1649068 vous voulez créer un tableau d'objets java à partir de jsonarray? – Parvathy

Répondre

1

OK, donc vous avez un tableau à deux dimensions de chaînes représentées comme JSON comme celui-ci stocké dans une chaîne Java:

[["a", "b", "c"],["x"],["y","z"]] 

Vous devez analyser en quelque sorte ou "désérialiser" cette valeur en Java String [] []. Vous pouvez utiliser une bibliothèque comme de http://www.json.org/java/index.html ou http://jackson.codehaus.org/ ou vous pouvez essayer de le faire manuellement. Manuellement pourrait être un peu difficile mais pas impossible. La bibliothèque de json.org est très simple et pourrait être assez bonne. Le code serait quelque chose comme ceci (je n'ai pas essayé/examiné ceci):

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 comme celui-ci

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

Selon ma question, ce qui est JSONObject ici? 'jsonArray' ou' jsonArrayStr'? – AlwaysALearner

+0

'jsonArray' ... – TheWhiteRabbit

+0

Donc, vous voulez dire que je n'ai pas besoin de' stringify() 'l'objet json? Je serai en mesure d'accéder directement au JSONObject dans les pages JSP sans les transmettre? – AlwaysALearner