Go 瑞士軍刀:各種結(jié)構(gòu)的轉(zhuǎn)換工具
閱讀本文大概需要 3 分鐘。
大家好,我是 polarisxu。
上次推薦的 「Go網(wǎng)址導(dǎo)航」,其中收錄了一項:轉(zhuǎn)換器。

網(wǎng)址是:https://transform.tools/。
這是一個開源項目,項目地址:https://github.com/ritz078/transform,目前 Star 數(shù) 2.8k+。
這個網(wǎng)站將轉(zhuǎn)換工具分成了幾類:
SVG HTML JSON JSON Schema CSS JavaScript GraphQL JSON-LD TypeScript Flow Others
其中有一些對 Gopher 比較有用,這里簡單列舉介紹下。
01 Go 相關(guān)
JSON 幾乎每個程序員都會用到。在 Go 語言中,會有哪些場景會用到這里 JSON 相關(guān)工具呢?
1)轉(zhuǎn)為 struct
這是一個很常見的場景,目前也存在很多在線工具,支持 JSON 轉(zhuǎn)為 struct,而且我沒記錯的話,GoLand 自帶將 JSON 轉(zhuǎn)為 struct。
transform 里也有這樣的工具:https://transform.tools/json-to-go

在左邊改動 JSON,右邊會實時顯示出對應(yīng)的 struct。
此外,頂部的向上箭頭,是導(dǎo)入文件,支持從本地導(dǎo)入和遠(yuǎn)程 URL 導(dǎo)入。
2)轉(zhuǎn)為 BSON
如果你存儲使用的是 MongoDB,會使用到 BSON。不過 JSON 到 BSON 轉(zhuǎn)換幾乎不太需要借助工具。
BSON 是一種類 JSON 的一種二進(jìn)制形式的存儲格式,簡稱 Binary JSON,它和 JSON 一樣,支持內(nèi)嵌的文檔對象和數(shù)組對象,但是 BSON 有 JSON 沒有的一些數(shù)據(jù)類型,如 Date 和 BinData 類型。BSON 可以做為網(wǎng)絡(luò)數(shù)據(jù)交換的一種存儲形式,這個有點類似于 Google 的 Protocol Buffer,但是 BSON 是一種 schema-less 的存儲形式,它的優(yōu)點是靈活性高,但它的缺點是空間利用率不是很理想,BSON有 三個特點:輕量性、可遍歷性、高效性。
所以,BSON 看起來和 JSON 是一樣的。

02 其他配置文件相關(guān)
目前常用的配置文件有:yaml、toml、json、xml 等,它們直接是可以直接轉(zhuǎn)換的。這個網(wǎng)站就提供了相關(guān)工具,將一種格式轉(zhuǎn)為另一種格式。
比如講 yaml 轉(zhuǎn)為 toml(我喜歡的文件類型):

03 總結(jié)
好的工具可以提升開發(fā)速度,我們要善于使用工具。當(dāng)然,有能力,你也可以自己生產(chǎn)工具。有好工具記得分享,讓更多人知曉、使用。
我是 polarisxu,北大碩士畢業(yè),曾在 360 等知名互聯(lián)網(wǎng)公司工作,10多年技術(shù)研發(fā)與架構(gòu)經(jīng)驗!2012 年接觸 Go 語言并創(chuàng)建了 Go 語言中文網(wǎng)!著有《Go語言編程之旅》、開源圖書《Go語言標(biāo)準(zhǔn)庫》等。
堅持輸出技術(shù)(包括 Go、Rust 等技術(shù))、職場心得和創(chuàng)業(yè)感悟!歡迎關(guān)注「polarisxu」一起成長!也歡迎加我微信好友交流:gopherstudio
