0
我想从JSON中创建不同深度的jsTree(可以是10个或更多个级别)。于是我搜索了网页,并找到了创建jsTree的方法:遍历。遍历JSON对象来创建jsTree
例JSON:
{
"testslave_1": {
"DevKey": "94ssfsafafeaw382",
"mapping": {
"device1": "D1",
"device2": "D2",
"device3": "D3"
}
}
}
幸运的是我有traverse-js,但我有它的问题。
这是jsTree所需的语法:
$('#using_json_2').jstree({ 'core' : {
'data' : [
{ "id" : "ajson1", "parent" : "#", "text" : "Simple root node" },
{ "id" : "ajson2", "parent" : "#", "text" : "Root node 2" },
{ "id" : "ajson3", "parent" : "ajson2", "text" : "Child 1" },
{ "id" : "ajson4", "parent" : "ajson2", "text" : "Child 2" },
]
} });
我有这个到目前为止已经试过:
var obj = '{ "testslave_1": { "DevKey": "94ssfsafafeaw382", "mapping": { "device1": "D1", "device2": "D2", "device3": "D3" } }}';
var obj = JSON.parse(obj);
var arr = [];
traverse(obj).map(function (x) {
var jsonTemp = '{ "id" : "'+this.path+'", "parent" : "'+this.parent+'", "text" : "'+this.node+'" }';
jsonTemp = JSON.parse(jsonTemp);
arr.push(jsonTemp);
});
console.dir(arr);
但也有serveral的问题:如何为每个项目创建一个特定ID ? (该函数可能记住父属性的ID)
它说对象对象,如果我以正确的方式了解它,我必须访问父对象的节点。但是如何? this.parent.node不起作用。
有物品丢失,应该是10件左右。
我的解决方案是走向正确的方向吗?
预先感谢您。
第一:谢谢!你是对的,我没有指定父母应该包含什么信息。它应该有父母本身的名称。在这种情况下,树中不存在“DevKey”。如果结构将是“testslave_1” - >“DevKey” - > 94ssfsafafeaw382,就像json结构一样,这将是完美的。我已经改变了obj.text =“父节点”; to obj.text = prop;以便其他父元素被命名为正确的。 ?如何为“” 94ssfsafafeaw382" 创建父项 它应该是这样的: http://imgur.com/a/2JKBc 在它看起来像这样的时刻: http://imgur.com/ a/OiwOH – bademeister
取决于你想要的东西,如果当前的东西不正确,那么映射也是不正确的,因为device1,device2和device3没有出现在树中,那么你必须修改该功能,以便它为只包含一个值的属性创建子节点。如果映射和设备是正确的,则必须将输入JSON调整为像......“DevKey”:{“text”:“94ssfsafafeaw382”},... – Danmoreng
你是对的,我忘记了添加Device1等等。 这应该是这样的:http://imgur.com/a/C33Qn 每个元素都应该在树中可见。 据我了解,它的功能必须修改,它再次运行的子节点,对不对? – bademeister