几个解放双手的 Go 开发利器

本文介绍如何利用JSON-to-Go, TOML-to-Go, YAML-to-Go等工具快速将数据格式转换为Go结构体,提升开发效率,同时分享了sql2struct的Chrome插件用于自动生成数据库表结构。

Go 开发中,我们会构造各种 struct 对象,经常会有 json、数据库表、yaml、toml 等数据结构转 strcut 的需求。这时,我们可以根据字段名和数据类型来将这些数据结构,手动地填充至 Go 代码的 strcut 。但当数据字段很多时,这种方式不但耗时耗力,还容易出现一些低级错误。

针对以上情况,本文推荐几个开箱即用的开发利器,帮助 Gopher 解放双手,拯救时间。

JSON-to-Go

JSON-to-Go 是一个将 json 数据转换为 Go 结构体的在线服务。

地址:https://mholt.github.io/json-to-go/

ef8fed9f5888d8461d2d56d422040197.png

TOML-to-Go

TOML-to-Go 是一个将 toml 数据转换为 Go 结构体的在线服务。

地址:https://xuri.me/toml-to-go/

5f6505f99b12e7a73cacb3078f5411cc.png

YAML-to-Go

TOML-to-Go 是一个将 yaml 数据转换为 Go 结构体的在线服务。

地址:https://zhwt.github.io/yaml-to-go/

b4d63be62a7bca8338fd607b5aa2a8e8.png

curl-to-Go

curl-to-Go 是一个将 curl 请求命令和数据格式转换为 Go 相关代码的在线服务。

地址:https://mholt.github.io/curl-to-go/

f867f691fa192ccc1aab9123a5a8e3af.png

sql2struct

sql2struct 是一款根据 sql 语句自动生成 Go 结构体的 chrome 插件。

地址:https://github.com/idoubi/sql2struct

它的安装非常简单,根据上面地址中给出的使用步骤即可。

当我们需要对某个数据表,例如小菜刀本地数据库中的 rent 库,执行以下命令,拿到 SQL 定义语句。

mysql> show create table rent\G;
*************************** 1. row ***************************
       Table: rent
Create Table: CREATE TABLE `rent` (
  `name` varchar(100) DEFAULT NULL,
  `price` int(10) DEFAULT NULL,
  `area` varchar(60) DEFAULT NULL,
  `number` varchar(60) DEFAULT NULL,
  `structure` varchar(60) DEFAULT NULL,
  `pay` varchar(60) DEFAULT NULL,
  `orientaion` varchar(60) DEFAULT NULL,
  `floor` varchar(60) DEFAULT NULL,
  `region` varchar(100) DEFAULT NULL,
  `metro` varchar(60) DEFAULT NULL,
  `url` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

ERROR:
No query specified

打开 sql2struct 插件,将 SQL 建表语句置入,即可得到对应的 Go 代码 struct 信息。

66b248b59ace4735503792c637e91d61.png

当然,我们还可以通过 options 选择多种字段标签,例如上例中,选择的是 gorm 和 json。

4193e36f1dc3171e3b368a4025b31f92.png

感谢你的点赞在看哦~

996f1f785023586fe6958ae2f0ecc2f7.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值