Jquery 获取JSTree的JSON数据,它';s元数据

Jquery 获取JSTree的JSON数据,它';s元数据,jquery,json,metadata,jstree,stringification,Jquery,Json,Metadata,Jstree,Stringification,我们使用jstree作为导航菜单编辑器,并将元数据分配给树的节点,如下所示: var data = currentNode.data("jstree"); data.title = textBoxTitle.val(); data.linkType = textBoxLink.val(); 我可以看到data对象包含相关属性,但不太确定jquery在这一点之后将关联数据保存在哪里 当我们开始保存数据(将其序列化为服务器端语言)时,元数据似乎被忽略了 var json = jQuery.jstr

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

var data = currentNode.data("jstree");
data.title = textBoxTitle.val();
data.linkType = textBoxLink.val();
我可以看到
data
对象包含相关属性,但不太确定jquery在这一点之后将关联数据保存在哪里

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

var json = jQuery.jstree._reference(tree).get_json();
var jsonString = JSON.stringify(json);
检查
json
对象是否没有描述元数据的属性

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

提前感谢,

  • 格雷格

简单阅读文档,我觉得您应该使用节点上的属性来存储元数据。您可以使用HTML5“数据-”属性:

currentNode.attr('data-title', textBoxTitle.val());
currentNode.attr('data-link-type', textBoxLink.val());
然后,当您从树中执行
.get_json()
操作时,您会告诉它您想要什么属性:

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

.get_json
函数实际上包含两个属性名列表,一个用于
  • 节点,另一个用于
    节点(按该顺序)。我不知道你的树是什么样子,所以我不确定你的属性会去哪里。(前导的“-1”参数告诉它获取整个树,这是您之前通过不传递任何内容来完成的。)

    您也可以使用此名称空间

    $('#treeid').data().jstree 
    $('#treeid').data().jstree.get_json()
    
    还有其他方法,你可以从中获得你需要的数据