Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用fancytree以树格式显示json数据键的名称?_Jquery_Fancytree - Fatal编程技术网

Jquery 使用fancytree以树格式显示json数据键的名称?

Jquery 使用fancytree以树格式显示json数据键的名称?,jquery,fancytree,Jquery,Fancytree,我使用带有json数据的Fancytree jquery插件以树格式显示数据。 问题是,我想将键名而不是值显示为我的树节点。比如说, [{ "title": "Sample json", "expanded": true, "folder": true, "children": [{ "title": "dev", "folder": true }, { "title": "etc", "fo

我使用带有json数据的Fancytree jquery插件以树格式显示数据。 问题是,我想将键名而不是值显示为我的树节点。比如说,

[{
    "title": "Sample json",
    "expanded": true,
    "folder": true,
    "children": [{
        "title": "dev",
        "folder": true
    }, {
        "title": "etc",
        "folder": true,
        "children": [{
            "title": "cups"
        }, {
            "title": "httpd"
        }, {
            "title": "init.d"
        }]
    }
在这里,我想将“title”显示为我的树节点,而不是“samplejson”值。 我该怎么做

任何帮助都将不胜感激。
提前谢谢

如果无法更改json对象的初始格式,您可以选择以下选项之一:

// option 1
$('#tree1').fancytree({
source: [{
    "title": "Sample json",
    "expanded": true,
    "folder": true,
    "children": [{
        "title": "dev",
        "folder": true
    }, {
        "title": "etc",
        "folder": true,
        "children": [{
            "title": "cups"
        }, {
            "title": "httpd"
        }, {
            "title": "init.d"
        }]
    }]
}],
renderNode: function (event, data) {
    var node = data.node;
    node.tooltip = node.title;
    node.setTitle('title');
}
});

// option 2
$('#tree2').fancytree({
source: {
    url: 'data.json'
},
postProcess: function (event, data) {
    var response = data.response;

    function changeTitle(nodeData) {
        nodeData.tooltip = nodeData.title;
        nodeData.title = 'title';
        for (var i in nodeData.children) {
            var subNodeData = nodeData.children[i];
            changeTitle(subNodeData);
        }
    }

    for (var i in response) {
        var nodeData = response[i];
        changeTitle(nodeData);
    }
}
});

你真的想显示一个有6个节点的树,所有节点都有“title”作为标题吗?@mar10,是的。如中所示,我希望将键名显示为fancytree的节点,而不是值。我不明白这一点,但由于键始终是'title',您只需为每个节点传递{“title”:“title”,…}node@mar10,实际上我想将XML转换为JSON,然后以树格式显示键而不是值。仅当节点已展开或根本不显示时,才应显示该值。@mar10,生成的JSON是否有必要采用如上所述的特定键的特定格式?