作为一名后台码农,跟上下游通信是最基本的工作之一。其中json是很常见的通信协议。对接别的服务时,会拿到对方给的结果json例子。这时我们需要把定义自己的struct来去做json反序列化。当json的字段少时,这并不算什么事。但是当json字段比较多时(这几天我接了一个系统,上百个字段),简直就是崩溃。在解决了这个崩溃的事情后,写了一个工具来去解析json文件,然后生成struct。下面介绍一下这个工具gengotag。

工具地址:


用法很简单,./gengotag -h 可以看到说明。

-file 参数指数json文件

-omitempty 往field tag上添加omitempty,这个标识空字段不进行json序列化

-type指定field tag的类型,默认是json,当然也可以根据json文件来生成bson之类的tag


另外,在工程上添加了一个vim插件,支持mac/linux使用。可以在vim里调用Gengotag命令,直接往当前位置上去插入struct结构。