Javascript 从S3结果创建Treeview

Javascript 从S3结果创建Treeview,javascript,amazon-s3,dynamic-arrays,Javascript,Amazon S3,Dynamic Arrays,我正试图从一系列AWS S3结果创建一个树状视图。我需要以特定的Key:Value格式创建一个数组,以便我们可以在网站中动态使用它们。我看过很多不同的解决方案,但找不到解决这个问题的方案。使用此应用程序的节点,因此将使用Javascript 这必须是动态的,因为铲斗的深度变化很大 源阵列: [{ Key: "Test Folder/", }, { Key: "Test Folder/2nd level folder/", }, { Key: "Test Folder/

我正试图从一系列AWS S3结果创建一个树状视图。我需要以特定的Key:Value格式创建一个数组,以便我们可以在网站中动态使用它们。我看过很多不同的解决方案,但找不到解决这个问题的方案。使用此应用程序的节点,因此将使用Javascript

这必须是动态的,因为铲斗的深度变化很大

源阵列:

[{  
    Key: "Test Folder/",
},
{
    Key: "Test Folder/2nd level folder/",
},
{
    Key: "Test Folder/2nd level folder/West-Rockies Flow Summary 191204.pdf",
},
{
    Key: "Test Folder/2nd level folder/West-Rockies Flow Summary 191205.pdf",
},
{
    Key: "Test Folder/2nd level folder/sub-sub-folder/",
},
{
    Key: "Test Folder/2nd level folder/sub-sub-folder/West-Rockies Flow Summary 191120.pdf",
},
{
    Key: "Test Folder/2nd level folder/sub-sub-folder/West-Rockies Flow Summary 191121.pdf",
},
{
    Key: "Test Folder/West-Rockies Flow Summary 191211.pdf",
},
{
    Key: "Test Folder/West-Rockies Flow Summary 191212.pdf",
},
{
    Key: "main/",
},
{
    Key: "main/test.txt",
}
[{
name: "Test Folder",
folders : [{
    name : "2nd level folder",
    folders : [{
        name : "sub-sub-folder",
        folders : [],
        files : [{
            Key : "Test Folder/2nd level folder/sub-sub-folder/West-Rockies Flow Summary 191120.pdf"
        },{
            Key : "Test Folder/2nd level folder/sub-sub-folder/West-Rockies Flow Summary 191121.pdf"
        }]
    }],
    files : [{
        Key : "Test Folder/2nd level folder/West-Rockies Flow Summary 191204.pdf"
    }, {
        Key : "Test Folder/2nd level folder/West-Rockies Flow Summary 191205.pdf"
    }]
}],
files : [{
    Key : "Test Folder/West-Rockies Flow Summary 191211.pdf"
}, {
    Key : "Test Folder/West-Rockies Flow Summary 191212.pdf"
}]
},
{
    name : "main",
    folders : [],
    files : [{
        Key : "main/test.txt"
    }]
}];
]

所需输出:

[{  
    Key: "Test Folder/",
},
{
    Key: "Test Folder/2nd level folder/",
},
{
    Key: "Test Folder/2nd level folder/West-Rockies Flow Summary 191204.pdf",
},
{
    Key: "Test Folder/2nd level folder/West-Rockies Flow Summary 191205.pdf",
},
{
    Key: "Test Folder/2nd level folder/sub-sub-folder/",
},
{
    Key: "Test Folder/2nd level folder/sub-sub-folder/West-Rockies Flow Summary 191120.pdf",
},
{
    Key: "Test Folder/2nd level folder/sub-sub-folder/West-Rockies Flow Summary 191121.pdf",
},
{
    Key: "Test Folder/West-Rockies Flow Summary 191211.pdf",
},
{
    Key: "Test Folder/West-Rockies Flow Summary 191212.pdf",
},
{
    Key: "main/",
},
{
    Key: "main/test.txt",
}
[{
name: "Test Folder",
folders : [{
    name : "2nd level folder",
    folders : [{
        name : "sub-sub-folder",
        folders : [],
        files : [{
            Key : "Test Folder/2nd level folder/sub-sub-folder/West-Rockies Flow Summary 191120.pdf"
        },{
            Key : "Test Folder/2nd level folder/sub-sub-folder/West-Rockies Flow Summary 191121.pdf"
        }]
    }],
    files : [{
        Key : "Test Folder/2nd level folder/West-Rockies Flow Summary 191204.pdf"
    }, {
        Key : "Test Folder/2nd level folder/West-Rockies Flow Summary 191205.pdf"
    }]
}],
files : [{
    Key : "Test Folder/West-Rockies Flow Summary 191211.pdf"
}, {
    Key : "Test Folder/West-Rockies Flow Summary 191212.pdf"
}]
},
{
    name : "main",
    folders : [],
    files : [{
        Key : "main/test.txt"
    }]
}];

您可能需要编写自己的解析器。提及您使用的语言(如果有的话)可能会有所帮助?感谢您的评论,我们使用的是Node,因此这是基于Javascript的。请参阅您已经掌握的,您可能会发现对提供树数据结构有用的内容。从这里,您可以解析包含路径的每个字符串,将其拆分为“/”个字符,然后使用块导航到树中的特定点,并将文件名插入树中。也可能有用: