获取JSTree的JSON数据及其元数据

Gre*_*reg 7 jquery json metadata stringification jstree

我们使用jstree作为导航菜单编辑器,并且已经将元数据分配给树的节点,如下所示:

var data = currentNode.data("jstree");
data.title = textBoxTitle.val();
data.linkType = textBoxLink.val();
Run Code Online (Sandbox Code Playgroud)

我可以看到该data对象包含相关属性,但不太确定jquery在此点之后保留关联数据的位置.

当我们来保存数据(将其序列化为我们的服务器端语言)时,元数据似乎被忽略了......

var json = jQuery.jstree._reference(tree).get_json();
var jsonString = JSON.stringify(json);
Run Code Online (Sandbox Code Playgroud)

json对象进行检查,以不具有属性描述该元数据.

我们如何序列化对象及其元数据?

提前致谢,

  • 格雷格.

Poi*_*nty 9

简要地阅读文档,它看起来好像您应该使用节点上的属性来存储元数据.您可以使用HTML5"data-"属性:

currentNode.attr('data-title', textBoxTitle.val());
currentNode.attr('data-link-type', textBoxLink.val());
Run Code Online (Sandbox Code Playgroud)

然后当你.get_json()从树上做到这一点时,你告诉它你想要什么属性:

var json = jQuery.jstree._reference(tree).get_json(-1, ['data-title', 'data-link-type', 'id', 'class']);
Run Code Online (Sandbox Code Playgroud)

.get_json函数实际上有2个属性名列表,一个用于<li>节点,一个用于<a>节点(按此顺序).我不知道你的树是什么样的,所以我不确定你的属性会去哪里.(另外,前导"-1"参数告诉它获取整个树,你以前通过什么都没有传递它.)