2013-07-03 16 views
9

Nel mio codice Java, ho un ArrayList di String s. Mi piacerebbe mettere questi dati in una variabile JavaScript su una pagina JSP su cui sto lavorando. Il mio primo pensiero è stato quello di comprendere direttamente, ad es .:Conversione di una ArrayList Java di stringhe su un array JavaScript

var myArray = <%= arrayList %>; 

Purtroppo, quando eseguito, myArray è una stringa nel formato [a,b,c], non una matrice reale JavaScript. Come ottengo alcuni dati da Java ArrayList in un array JavaScript?

+0

per favore aggiungi altro codice con un esempio di dati – sabithpocker

risposta

4

Quando si utilizza <%=arraylist%> chiama il toString() sulla lista e stampe [a,b,c]

e no, non si può direttamene convertire da Java arrayList a javascript array, Convertire il Java ArrayList a JSON String, e utilizzare JSON.parse() per ottenere Javascript object.

Dai un'occhiata alla Json objet e Json in java

+0

Grazie amico. Ho la stringa JSON come [a, b, c]. Quando uso Json.parse (aa); Mostra l'errore. L'errore di riferimento non rilevato.a non è definito. Quindi deve essere come ["a", "b", "c"]. Quindi, come convertire in questo modo? – Jack

+0

Amico, devi aggiungere la libreria json al tuo percorso classe e convertire il tuo arraylist su serveride in stringa json e inviarlo al client. Poi funziona JSON.parse() :) –

+0

Il secondo link nella risposta non è più disponibile. – Knu8

1

provare in questo modo:

var myArray = <%=net.sf.json.JSONSerializer.toJSON(arrayList) %>; 
13

Withoug una libreria:

Java:

public static String toJavascriptArray(String[] arr){ 
    StringBuffer sb = new StringBuffer(); 
    sb.append("["); 
    for(int i=0; i<arr.length; i++){ 
     sb.append("\"").append(arr[i]).append("\""); 
     if(i+1 < arr.length){ 
      sb.append(","); 
     } 
    } 
    sb.append("]"); 
    return sb.toString(); 
} 

JSP:

var myArray = <%= toJavascriptArray(arrayList) %>; 
+0

Grazie amico. Mi aspetto solo questo ... – Jack

+0

La tecnica è buona, ma è comunque necessario analizzarla su JSON, assegnando la variabile javascript. –

+0

Questo ha funzionato per me! –

3

fare quanto segue nella pagina JSP

<% List<String> strList = new ArrayList<String>(); 
strList.add("one"); 
strList.add("two"); 
strList.add("three"); %> 

var jsArray = [<% for (int i = 0; i < strList.size(); i++) { %>"<%= strList.get(i) %>"<%= i + 1 < strList.size() ? ",":"" %><% } %>]; 

L'uscita sarà

var jsArray = ["one","two","three"]; 

Se la lista era vuota sarà uscita

var jsArray = []; 
1

JavaScript metodo split() restituisce un array , come sappiamo, quindi è il modo più semplice per convertire javaArrayList in jav array di ascript. Funziona bene per me.

function toJavascript(){ 
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var array="<%=javaArrayList%>";<br> 
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; array=array.replace("[", "");<br> 
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; array=array.replace("]", "");<br> 
      &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return javaArray.split(",");<br> 

} 
Problemi correlati