我正在编写代码去创建一个循环单链表: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] 删除。
我来说两句