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

带有导出和未导出字段的 Golang Marshal/Unmarshal JSON

带有导出和未导出字段的 Golang Marshal/Unmarshal JSON

Go
慕尼黑8549860 2021-09-13 09:46:48
我已经看到了很多方法来编组/解组只有未导出字段的结构。但是我怎么能用混合字段来做到这一点呢?给定一个结构:type Test struct {    fieldA string `json:"fieldA"`    FieldB int    `json:"fieldB"`    FieldC string `json:"fieldC"`}如何编写 MarshalJSON/UnmarshalJSON 函数,以便 fieldA 与 FieldB 和 FieldC 一起传输?以下编译,但当我运行它时会溢出调用堆栈。我的猜测是我正在递归编组对象,但我不确定在编码时如何保留导出和未导出的字段。func (t *Test) MarshalJSON() ([]byte, error) {    return json.Marshal(struct {         *Test         FieldA string `json:"fieldA"`    }{         t,         t.fieldA,    })}func (t *Test) UnmarshalJSON(b []byte) error {    return json.Unmarshal(b, &t)}有没有办法做到这一点?或者我应该重新考虑我的数据结构,也许只是导出该字段?注意:我知道我可以手动完成每个字段,但如果可能的话,我想避免这种情况,以使更新代码更易于管理。
查看完整描述

2 回答

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

添加回答

举报

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