我开始在Go中编写聊天应用程序并开始想知道使用JSON的最佳方式是什么。我已经阅读了不同的文章,似乎我必须为客户端发送的每个操作创建不同的类型。
让我们说有三个动作:
saveAsTable
根据我的理解,我必须创建三种匹配这些操作的类型。像这样:
NewMessage
DeleteMessage
EditMessage
我来自Node.js世界(虽然我不想比较两者)但对我而言,为每一个动作创建和维护类型似乎有点过于冗长。如果有数百个动作怎么办?
答案 0 :(得分:2)
Go是一种强类型编程语言。没有类似JavaScript的松散类型。
如果您想为每条消息提供强大的数据类型,那么您需要为每种类型编写一个结构。否则,您可以将消息解组为map[string]interface{}
(对于“通用”JSON对象)并改为使用它(这将需要类型断言将interface
值转换为强类型)。