我有一個結構,我想不同的上下文元素到JSON不同。JSON編組/將相同的結構解組到不同的JSON格式中去?
例如,有時我想元帥是這樣的:
type MyStruct struct {
Nickname string `json:"nickname"`
EmailAddress string `json:"email_address"`
PhoneNumber string `json:"-"`
MailingAddress string `json:"-"`
}
有時我想元帥是這樣的:
type MyStruct struct {
Nickname string `json:"nickname"`
EmailAddress string `json:"email_address"`
PhoneNumber string `json:"phone_number"`
MailingAddress string `json:"mailing_address"`
}
有沒有一種簡單的方法來做到這一點沒有:
- 製作2個單獨的結構。
- 編寫自定義編組器。
- 暫時刪除PhoneNumber和MailingAddress的字符串值(標記爲omitempty),封送然後再添加回去。
如果只是有一個辦法:
- 指定2套標籤,告訴使用哪些封送拆。
- 在運行時動態更改標籤。
這比我想象的要簡單得多。我最終使用了這種方法和這裏描述的方法的組合:http://attilaolah.eu/2014/09/10/json-and-struct-composition-in-go/ – 2014-10-10 17:44:58
這裏有一些鏈接供參考: Marshaler type http://golang.org/pkg/encoding/json/#Marshaler。 博客文章:http://blog.golang.org/json-and-go – 2014-10-11 16:12:09
同樣的原則適用於解組 - http://golang.org/pkg/encoding/json/#Unmarshaler – 2014-10-11 16:13:50