本文转载自微信公众号《Golang技术分享》,作者:机器贝尔斩波。转载本文请联系Golang技术分享公众号。在Go开发中,我们会构造各种struct对象,经常会有将json、数据库表、yaml、toml等数据结构转换成strcut的需求。这时候我们可以根据字段名和数据类型手动将这些数据结构填充到Go代码的strcut中。但是当数据字段较多时,这种方法不仅费时费力,而且容易出现一些低级错误。针对以上情况,本文推荐几款开箱即用的开发工具,帮助Gopher解放双手,节省时间。JSON-to-GoJSON-to-Go是一种将json数据转换为Go结构的在线服务。地址:https://mholt.github.io/json-to-go/TOML-to-GoTOML-to-Go是一个将toml数据转换成Go结构的在线服务。地址:https://xuri.me/toml-to-go/YAML-to-GoTOML-to-Go是一个将yaml数据转换成Go结构的在线服务。地址:https://zhwt.github.io/yaml-to-go/curl-to-Gocurl-to-Go是一个将curl请求命令和数据格式转换成Go相关代码的在线服务。地址:https://mholt.github.io/curl-to-go/sql2structsql2struct是一个chrome插件,可以根据sql语句自动生成Go结构体。地址:https://github.com/idoubi/sql2struct安装非常简单,按照上面地址给出的步骤即可。当我们需要对一个数据表执行如下命令,比如小菜岛本地数据库中的租库,获取SQL定义语句。mysql>showcreatetablerent\G;*******************************1.row*******************************表:rentCreateTable:CREATETABLE`rent`(`name`varchar(100)DEFAULTNULL,`price`int(10)DEFAULTNULL,`area`varchar(60)DEFAULTNULL,`number`varchar(60)DEFAULTNULL,`structure`varchar(60)DEFAULTNULL,`pay`varchar(60)DEFAULTNULL,`orientaion`varchar(60)DEFAULTNULL,`floor`varchar(60)DEFAULTNULL,`region`varchar(100)DEFAULTNULL,`metro`varchar(60)DEFAULTNULL,`url`varchar(255)DEFAULTNULL)ENGINE=InnoDBDEFAULTCHARSET=utf81rowinset(0.00sec)ERROR:Noqueryspecified打开sql2struct插件插入SQL建表语句获取相应的Go代码结构信息。当然,我们也可以通过options来选择多种字段标签。比如上面的例子,选择了gorm和json。
