jstree显示原始json,而不是树

时间:2012-09-19 18:05:04

标签: javascript jquery json jstree

当前网页显示静态jstree。脚本(如下所示)与JSP页面位于同一文件中,使用添加到弹簧模型的数据。

设置#1

<div id="permissions" class="scroll"></div>
<script type="text/javascript" class="source">
    $(function () {
        $("#permissions").jstree({ 
            "plugins" : [ "themes", "json_data", "checkbox", "sort", "ui" ],
            "checkbox" : { "override_ui" : true },
            "themes" : { "icons" : false },
            "json_data" : { "data" : ${permissionTree} }
        });
    });
</script>

为了对它进行更多动态控制,我将脚本移动到javascript文件中,并使其能够显示不同的信息。但是,出于测试目的,我使用的数据与以前完全相同。

设置#2

function getPermissions(str) {
$.getJSON("getPermissions.htm", {id : str},
    function(data) {
        $(function () {
            $("#permissions").jstree({ 
                "plugins" : [ "themes", "json_data", "checkbox", "sort", "ui" ],
                "checkbox" : { "override_ui" : true },
                "themes" : { "icons" : false },
                "json_data" : { "data" : JSON.stringify(data) }
            });
        });
    });

}

但是,使用设置#2,树显示原始JSON,而不是树。我已经确认在两个实例中data都是相同的。什么给出了什么?为什么它不能这样工作?

1 个答案:

答案 0 :(得分:3)

以下代码段中的

"data"应包含对象或数组值。

"json_data" : { "data" : JSON.stringify(data) }

试试这个:

"json_data" : { "data" : data }