Go 開發中,我們會構造各種 struct 對象,經常會有 json、數據庫表、yaml、toml 等數據結構轉 strcut 的需求。這時,我們可以根據字段名和數據類型來將這些數據結構,手動地填充至 Go 代碼的 strcut 。但當數據字段很多時,這種方式不但耗時耗力,還容易出現一些低級錯誤。
針對以上情況,本文推薦幾個開箱即用的開發利器,幫助 Gopher 解放雙手,拯救時間。
JSON-to-Go
JSON-to-Go 是一個將 json 數據轉換為 Go 結構體的在線服務。
地址:https://mholt.github.io/json-to-go/
TOML-to-Go
TOML-to-Go 是一個將 toml 數據轉換為 Go 結構體的在線服務。
地址:https://xuri.me/toml-to-go/
YAML-to-Go
TOML-to-Go 是一個將 yaml 數據轉換為 Go 結構體的在線服務。
地址:https://zhwt.github.io/yaml-to-go/
curl-to-Go
curl-to-Go 是一個將 curl 請求命令和數據格式轉換為 Go 相關代碼的在線服務。
地址:https://mholt.github.io/curl-to-go/
sql2struct
sql2struct 是一款根據 sql 語句自動生成 Go 結構體的 chrome 插件。
地址:https://github.com/idoubi/sql2struct
它的安裝非常簡單,根據上面地址中給出的使用步驟即可。
當我們需要對某個數據表,例如小菜刀本地數據庫中的 rent 庫,執行以下命令,拿到 SQL 定義語句。
mysql> show create table rent\G;*************************** 1. row *************************** Table: rentCreate 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=utf81 row in set (0.00 sec)ERROR:No query specified
打開 sql2struct 插件,將 SQL 建表語句置入,即可得到對應的 Go 代碼 struct 信息。
當然,我們還可以通過 options 選擇多種字段標簽,例如上例中,選擇的是 gorm 和 json。
作者:機器鈴砍菜刀
來源:https://mp.weixin.qq.com/s/OQ17Y4Knffd8SX-n-fnMsQ