我需要通過JSON導出一些大型結構,並取回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
不能使用?不得不寫所有這些檢查手冊將是非常不愉快的。
您的解釋很難遵循我害怕。你能澄清你想達到什麼嗎?這是你想要的嗎? http://stackoverflow.com/questions/11126793/golang-json-and-dealing-with-unexported-fields它允許一個私有結構與導出的字段,所以你可以定義你想要訪問的getters/setters,但導出整個結構。 – minikomi
@minikomi:不,我想爲編碼器導出不同的字段而不是解碼器。因爲用戶應該能夠看到更多的字段,而不是允許更改。如果您編寫API,這是一項非常常見的任務。 –