私はタイプMonthYear
が、私は結果のJSONは、いずれかを持っていないように私はMonthYear
タイプをインライン化するにはどうすればよいJSONをマーシャリングするときにフィールドをインライン化するにはどうすればよいですか?
type Event struct {
Name string `json:"name"`
Date MonthYear
}
type Item struct {
Category string `json:"category"`
Date MonthYear
}
のような異なる構造体の多くのそれを含めてい
type MonthYear time.Time
func (my *MonthYear) MarshalJSON() ([]byte, error) {
t := time.Time(*my)
return json.Marshal(&struct {
Month int `json:"month"`
Year int `json:"year"`
}{
Month: int(t.Month()) - 1,
Year: t.Year(),
})
}
のように定義されています埋め込みオブジェクト?
結果は、構造体ごとにMarshalJSONを記述することなく、{ "name": "party", "month": 2, "year": 2017 }
および{ "category": "art", "month": 3, "year": 2016 }
のようになります。
ブラッドフィッツパトリックの答えがあなたのために十分でない場合、私は何か分かりません。 https://github.com/golang/go/issues/6213 – Zoyd
もしあなたがスーパーであれば、マーシャルのJSON関数 –