我以字符串的形式提供JSON数据,我在servlet中将其设置为属性。
request.setAttribute("json", json);
我需要将它放入jstl标签的jstree中。我知道我不能将jstl直接放到javascript中,所以我做了以下内容:
<p id = "jsonPData">${json}</p>
在我的javascript中,我有以下内容:
$(function () {
$("#jsonPData").hide();
var json = $("#jsonPData").text();
$('#tree').jstree({ 'core' : {
'data' : [
json
]
} });
});
当我不隐藏p元素时,数据很好,如果我将其复制并粘贴到jstree上的数据部分,它也可以正常工作。但是,当我将变量放入jstree数据时,它将它全部放入jstree上的一个节点中。在查看由Web浏览器生成的代码之后,似乎它在json变量中的所有数据周围添加了引号,这将导致它只是一个节点。
有关我应该如何做的任何建议?或者另一种方式? 谢谢!
答案 0 :(得分:1)
这就是最终的工作。我不得不删除“数据”中的括号。区域,并添加eval(json)而不仅仅是json。
$(function () {
$('#jsonPData').hide();
var json = $("#jsonPData").text();
$('#tree').jstree({ 'core' : {
'data' : eval(json)
} });
});