使用RawMessage。
type Messages struct { Control string `json:"control"` X json.RawMessage}var m Messageserr := c.ReadJSON(&m)if err != nil { // handle error}switch m.Control {case "Foo": var foo Foo if err := json.Unmarshal([]byte(m.X), &foo); err != nil { // handle error } // do something with foocase "Bar": ... follow pattern for Foo}


