Go:是否可以编组循环的 json

伊夫

我正在编写代码去创建一个循环单链表:https : //www.geeksforgeeks.org/circular-singly-linked-list-insertion/

这是我的代码:

type Node struct {
    Name string `json:"name"`
    Next *Node  `json:"next"`
}

func main() {
    n1 := Node{Name: "111", Next: nil}
    n2 := Node{Name: "222", Next: &n1}
    n3 := Node{Name: "333", Next: &n2}
    n1.Next = &n3
}

但是,当我尝试编组时,出现错误: json: unsupported value: encountered a cycle via *main.Node

res, err := json.Marshal(n1)
if err != nil {
    fmt.Println(err)
} else {
    fmt.Println(res)
}

好吧,我明白为什么我会收到这个错误。所以我想知道是否有一些方法可以让我将结构体转换Node为 JSON。

沃尔克

来自 encoding/json.Marshal 的文档

JSON 不能表示循环数据结构,Marshal 不处理它们。将循环结构传递给 Marshal 会导致错误。

主要部分是“JSON 不能表示循环数据结构”,所以答案是明确的“否”:不可能有 JSON 来表示您的价值。你必须重新设计。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章