gpt4 book ai didi

json - 在 GoLang 中将 JSON 目录树转换为缩进的纯文本

转载 作者:IT王子 更新时间:2023-10-29 01:27:30 24 4
gpt4 key购买 nike

我在 JSON 结构中有一个目录树,我试图将其格式化为纯文本。将其格式化为 XML 或 YAML 非常简单。将其格式化为纯文本比我想象的要难得多。

JSON 结构的格式如下:

type File struct {
Name string `json:"Name"`
Children []*File `json:"Children"`
}

由于 JSON 结构允许“子级”,因此 JSON 是嵌套的,并且由于它是目录树,我不知道嵌套会达到多深(在合理范围内)。

我需要转换后的 JSON 如下所示:

base_dir
sub_dir_1
sub_dir_2
file_in_sub_dir_2
sub_dir_3
...

谁能告诉我如何以一种相当简单的方式做到这一点?现在,我不得不使用大量循环和制表符缩进进行暴力破解,而且我确信 Go 中有更优雅的方法。

最佳答案

编写一个函数来递归打印一个文件及其子文件的目录树。在树下递归时增加缩进级别。

func printFile(f *File, indent string) {
fmt.Printf("%s%s\n", indent, f.Name)
for _, f := range f.Children {
printFile(f, indent+" ")
}
}

用树的根调用函数:

printFile(root, "")

run the code on the playground

关于json - 在 GoLang 中将 JSON 目录树转换为缩进的纯文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34388758/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com