我已經(jīng)看到了很多方法來編組/解組只有未導出字段的結構。但是我怎么能用混合字段來做到這一點呢?給定一個結構:type Test struct { fieldA string `json:"fieldA"` FieldB int `json:"fieldB"` FieldC string `json:"fieldC"`}如何編寫 MarshalJSON/UnmarshalJSON 函數(shù),以便 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)}有沒有辦法做到這一點?或者我應該重新考慮我的數(shù)據(jù)結構,也許只是導出該字段?注意:我知道我可以手動完成每個字段,但如果可能的話,我想避免這種情況,以使更新代碼更易于管理。
帶有導出和未導出字段的 Golang Marshal/Unmarshal JSON
慕尼黑8549860
2021-09-13 09:46:48