5
Jak automatycznie dodać pole type
do każdego serializowanego JSON-a w Go?Jak automatycznie dodać pole typu do JSON w Go?
Na przykład, w tym kodzie:
type Literal struct {
Value interface{} `json:'value'`
Raw string `json:'raw'`
}
type BinaryExpression struct {
Operator string `json:"operator"`
Right Literal `json:"right"`
Left Literal `json:"left"`
}
os.Stdout.Write(json.Marshal(&BinaryExpression{ ... }))
Zamiast generować coś takiego:
{
"operator": "*",
"left": {
"value": 6,
"raw": "6"
},
"right": {
"value": 7,
"raw": "7"
}
}
Chciałbym wygenerować to:
{
"type": "BinaryExpression",
"operator": "*",
"left": {
"type": "Literal",
"value": 6,
"raw": "6"
},
"right": {
"type": "Literal",
"value": 7,
"raw": "7"
}
}
Czy jest jakiś sposób, aby to zrobić, zastępując 'MarshalJSON' raz (może dla' interfejsu {} 'lub czegoś), zamiast dla każdej struktury? –