我需要通過JSON導出一些大型結構,并取回JSON字符串以僅更新其某些屬性。讓我們有以下結構:type House struct { Name string `json:"name"` Rooms int `json:"rooms_count"` Owner *Owner `json:"-"`}使用進行編碼encoding/json將產生JSON字符串,例如{"name":"some name", "rooms_count":5}我現在得到以下JSON字符串:{"name":"some other name", "rooms_count":7, Owner:{something...}}用戶想要更改每個屬性。Owner不允許,因為它沒有被導出。但是我只想允許更改rooms_count。有什么說法可以將某些屬性與一起導出Encoder,但不能由導出Decoder?必須手動編寫所有這些檢查會非常不愉快。
2 回答

偶然的你
TA貢獻1841條經驗 獲得超3個贊
在您的具體情況下,只需解組到新結構并執行acurrentStruct.Rooms = newStruct.Rooms
就是您想要的。
對于這種類型的自定義編組,還沒有一種完全簡單的方法。最好的選擇是兩個相同的結構,在不同的場合使用不同的標簽,并進行一些反射以在它們之間進行轉換。
添加回答
舉報
0/150
提交
取消