为了账号安全,请及时绑定邮箱和手机立即绑定

Golang 将 URL 片段转换为 JSON 站点树

Golang 将 URL 片段转换为 JSON 站点树

Go
宝慕林4294392 2023-08-14 17:26:13
我有一个 url 列表,需要将其更改为 JSON 树结构。到目前为止,我已经尝试了几种不同的方法,但都失败了。目前我正在尝试将此算法转换为 Golang,但它没有做任何事情,我被困在他们的逻辑中,我到 golang 的转换是有缺陷的,我被困住了。树.gopackage treeimport (    "fmt")type TreeNode struct {    Path     string     `json:"path"`    Children []TreeNode `json:"children"`}urls := []string{"fenceprosc.com/hello-world/#respond","fenceprosc.com/199-2/12615753_1208442715850011_4650003168465028857_o/#respond","fenceprosc.com/199-2/28339_127294957298131_7361568_n/#main","fenceprosc.com/199-2/10917425_1025362007491417_2370903639534256456_n/#main","fenceprosc.com/199-2/vinyl-gate-2/#main","fenceprosc.com/199-2/vinyl-gate1/#main",}func GetTheParentNodeChildArray(path string, treeNodes *[]TreeNode) []TreeNode {    for _, treeNode := range *treeNodes {        if len(treeNode.Children) > 0 {            var possibleParent = false            for _, node := range treeNode.Children {                // What do I do here???                fmt.Println("node::", node)            }            if possibleParent {                return GetTheParentNodeChildArray(path, &treeNode.Children)            }        }    }    return *treeNodes}// Add an item node in the tree, at the right positionfunc addToTree(node TreeNode, treeNodes *[]TreeNode) {    parentNodeArr := GetTheParentNodeChildArray(node.Path, treeNodes)    fmt.Println("parentNodeArr", parentNodeArr)    if parentNodeArr == nil {        parentNodeArr = *treeNodes    }    parentNodeArr = append(parentNodeArr, TreeNode{        Path: node.Path,    })}//Create the item tree starting from urlsfunc createTree(nodes []TreeNode) []TreeNode {    var tree []TreeNode    for _, node := range nodes {        addToTree(node, &tree)    }    return tree}我也对任何其他解决方案完全开放,我对这个算法没有任何执着。只是很难弄清楚如何将它们构建成一棵树。
查看完整描述

目前暂无任何回答

  • 0 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信