golang json.Marshal使用中遇到的崩溃问题

本文讨论了在使用Golang的json.Marshal时遇到的‘1000000000-byte limit fatal error: stack overflow’错误,原因是结构体中存在循环引用。解决方法是在不需要被序列化的字段后添加`json:"-"`。
摘要由CSDN通过智能技术生成

1000000000-byte limit fatal error: stack overflow

出现上述类似崩溃报错
原因是待Marshal的结构体中包含了一个指向上一层的指针,在被Marshal的时候循环使用,导致stack overflow
解决方案,不需要Marshal的数据,在后面加上 json:”-“

原代码类似于下:

type datas struct{
    a int
    b int
    da data
}


type data struct{
    c int
    ds *datas
}


func main(){
    var a = new(datas)
    a.da.ds=a
    json.Marshal(a)
}

修改为

type datas struct{
    a 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值