en passant les données json à partir de servlet pour jsp pour fichier js

J'ai eu cette servlet, qui crée des données JSON et je tiens à transmettre ces données à une page jsp qui est censé afficher les données par l'intermédiaire de la trousse à outils InfoVis.

servlet.java

JSONObject json = new JSONObject();
    JSONArray toplevel = new JSONArray();
    JSONObject sublevel;

    try{

        json.put("id", "node" + 0);
        json.put("name", "name" + 0);

        int count = 5;
        for(int i=1; i < count; i++){
            sublevel = new JSONObject();
            sublevel.put("id", "node" + i);
            sublevel.put("name", "name" + i);
            toplevel.put(sublevel);
        }
        json.put("children", toplevel);
    } catch (JSONException jse) {

    }

    request.setAttribute("jsonString", json.toString());
    RequestDispatcher dispatcher = request.getRequestDispatcher("graph.jsp");
    dispatcher.forward(request, response);

Le Code suivant est fourni par la Trousse à outils InfoVis et je ne suis pas sûr si elle peut être changée. Ou, au moins, je n'ai pas assez d'expérience en JS pour le changer.

graphique.jsp

<body onload="init('${jsonString}');">

spacetree.js

function init(jsonString){

    var json = jsonString;

À l'origine de l'appel de fonction est uniquement

<body onload="init()">

mais la fonction init() est le JSON variable codée en dur, ce qui n'est bien sûr pas du tout utile. Donc, je suis à la recherche d'une façon de faire de cette dynamique. Mais depuis il y a des citations à l'intérieur de la chaîne, il est maintenant totalement bousille le onload=init() de l'appel de fonction..

Merci de ne pas jurer sur. J'ai enlevé la pertinente pour vous cette fois.

OriginalL'auteur PogoMips | 2013-01-29