我得到了这个创建 JSON 数据的 servlet,我想将此数据传递到一个 jsp 页面,该页面应该通过 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);
以下代码由 InfoVis Toolkit 提供,我不确定是否可以更改。或者至少我没有足够的 JS 经验来改变它。
图.jsp
<body onload="init('${jsonString}');">
空间树.js
function init(jsonString){
var json = jsonString;
本来函数调用只是
<body onload="init()">
但是 init() 函数对 JSON 变量进行了硬编码,这当然一点用处都没有。所以我正在寻找一种方法来使这种动态化。但是由于字符串中有引号,它现在完全搞乱了 onload=init() 函数调用..