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