web-dev-qa-db-fra.com

Conversion d'un tableau JavaList de chaînes en un tableau JavaScript

Dans mon code Java, j'ai ArrayList de Strings. J'aimerais mettre ces données dans une variable JavaScript sur une page JSP sur laquelle je travaille. Ma première pensée a été de l’inclure directement, par exemple:

var myArray = <%= arrayList %>;

Malheureusement, lorsqu’il est exécuté, myArray est une chaîne au format [a,b,c], et non un tableau JavaScript réel. Comment puis-je obtenir des données d'une ArrayList Java vers un tableau JavaScript?

11
Jack

Lorsque vous utilisez <%=arraylist%>, il appelle la fonction toString() dans la liste et imprime [a,b,c]

Et non, vous ne pouvez pas convertir directement De __ arrayList à un tableau javascript, convertir la ArrayList Java en JSON String et utiliser JSON.parse() pour obtenir Javascript object.

Regardez Json objet et Json en Java

4
Suresh Atta

Sans bibliothèque:

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) %>;
13
Uooo

Faites ce qui suit dans votre page 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() ? ",":"" %><% } %>];

La sortie sera

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

Si votre liste était vide, elle sera affichée

var jsArray = [];
3
aaronvargas

essayez de cette façon:

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

La méthode JavaScript split () renvoie un tableau. Il s'agit donc d'un moyen simple de convertir une liste de tableaux Java en un tableau JavaScript.

function toJavascript(){
    var array="<%=javaArrayList%>";
    array=array.replace("[", "");
    array=array.replace("]", "");
    return javaArray.split(",");
}
1
Vivek Jain