我已经看到了很多方法来编组/解组只有未导出字段的结构。但是我怎么能用混合字段来做到这一点呢?给定一个结构: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
提交
取消