struct 封装json的序列化问题, 求解问什么不能这样定义????

zhaoyangwyyx · · 659 次点击
好像是这个问问 , 谢谢
#3
更多评论
json.Marshal(errJson)会调用errJson.MarshalJSON()方法,MarshalJSON()又会调用json.Marshal(errJson),造成死递归,导致栈溢出 修改一下: ```go package main import ( "encoding/json" "fmt" ) type ErrorJson struct { Code int `json:"code"` Message string `json:"message"` } func (errJson ErrorJson) Error() string { return errJson.Message } func main() { errJson := ErrorJson{Code: 0, Message: "success"} str, err := json.Marshal(errJson) if err != nil { fmt.Println(err) } fmt.Println(string(str)) } ```
#1
xmge
欲戴王冠 必承其重
代码格式好乱哦~~
#2