如何通过切片字符串路径创建分层json结构



我正在为Go编写的文件管理器构建后端。

我正在寻找一种方法,使一个例子切片字符串路径。

sliceStr := []string{
"/file_A.txt",
"/folder_B/file_B.txt",
"/folder_C/sub_folder_C/file_C.txt",
"/folder_C/sub_folder_C/file_C_2.txt",
}

创建一个api,该api返回一个分层json结构,并使用Devextreme FileManager传递给前端。像下面的

[
{
"name": "file_A.txt",
"isDirectory": false
},
{
"name": "folder_B",
"isDirectory": true,
"items": [
{
"name": "file_B.txt",
"isDirectory": false
}
]
},
{
"name": "folder_C",
"isDirectory": true,
"items": [
{
"name": "sub_folder_C",
"isDirectory": true,
"items": [
{
"name": "file_C.txt",
"isDirectory": false,
},
{
"name": "file_C_2.txt",
"isDirectory": false
}
]
}
]
}
]

你可以试试这个方法

  • 将切片加入字节数组
  • 实现你自己的json UnmarshalJSON
type  Yourstruct  struct {
.......
}
func (t *Yourstruct ) UnmarshalJSON(data []byte) error 

演示案例