我必须使用(相对)标准的围棋程序go.net/websocket库.我正在尝试接收和解码来自网页的消息,这些消息对于每种类型的消息具有不同的结构,即
{type: "messagetype", msg: { /* structure different for each message type */ } }
Run Code Online (Sandbox Code Playgroud)
有没有办法对消息进行"部分"解码,只是type
在继续将实际消息解码为go结构之前检查字段?
这是否需要编写一个自定义的Codec
a'la JSON
,它代表消息本身的JSON编解码器?
Nic*_*ood 11
使用json.RawMessage来延迟解码,例如
struct {
type string
msg json.RawMessage
}
Run Code Online (Sandbox Code Playgroud)
json.RawMessage
是一个别名[]byte
,您可以根据需要进一步解码.