【问题标题】:Getting JSON data of JSTree, and it's metadata获取 JSTree 的 JSON 数据,以及它的元数据
【发布时间】:2011-04-30 05:47:03
【问题描述】:

我们使用 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 对象被检查为没有描述元数据的属性。

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

提前致谢,

  • 格雷格。

【问题讨论】:

    标签: jquery json metadata jstree stringification


    【解决方案1】:

    你也可以使用这个命名空间

    $('#treeid').data().jstree 
    $('#treeid').data().jstree.get_json()
    

    还有其他方法可以获取所需的数据

    【讨论】:

      【解决方案2】:

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

      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 函数实际上采用 2 个属性名称列表,一个用于<li> 节点,一个用于<a> 节点(按此顺序)。我不知道你的树是什么样的,所以我不确定你的属性会去哪里。 (此外,前导“-1”参数告诉它获取整个树,而您之前只是通过什么都不传递来执行此操作。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多