Go 瑞士军刀:各种结构的转换工具
共 1368字,需浏览 3分钟
·
2021-12-28 17:05
阅读本文大概需要 3 分钟。
大家好,我是 polarisxu。
上次推荐的 「Go网址导航」,其中收录了一项:转换器。
网址是:https://transform.tools/。
这是一个开源项目,项目地址:https://github.com/ritz078/transform,目前 Star 数 2.8k+。
这个网站将转换工具分成了几类:
SVG HTML JSON JSON Schema CSS JavaScript GraphQL JSON-LD TypeScript Flow Others
其中有一些对 Gopher 比较有用,这里简单列举介绍下。
01 Go 相关
JSON 几乎每个程序员都会用到。在 Go 语言中,会有哪些场景会用到这里 JSON 相关工具呢?
1)转为 struct
这是一个很常见的场景,目前也存在很多在线工具,支持 JSON 转为 struct,而且我没记错的话,GoLand 自带将 JSON 转为 struct。
transform 里也有这样的工具:https://transform.tools/json-to-go
在左边改动 JSON,右边会实时显示出对应的 struct。
此外,顶部的向上箭头,是导入文件,支持从本地导入和远程 URL 导入。
2)转为 BSON
如果你存储使用的是 MongoDB,会使用到 BSON。不过 JSON 到 BSON 转换几乎不太需要借助工具。
BSON 是一种类 JSON 的一种二进制形式的存储格式,简称 Binary JSON,它和 JSON 一样,支持内嵌的文档对象和数组对象,但是 BSON 有 JSON 没有的一些数据类型,如 Date 和 BinData 类型。BSON 可以做为网络数据交换的一种存储形式,这个有点类似于 Google 的 Protocol Buffer,但是 BSON 是一种 schema-less 的存储形式,它的优点是灵活性高,但它的缺点是空间利用率不是很理想,BSON有 三个特点:轻量性、可遍历性、高效性。
所以,BSON 看起来和 JSON 是一样的。
02 其他配置文件相关
目前常用的配置文件有:yaml、toml、json、xml 等,它们直接是可以直接转换的。这个网站就提供了相关工具,将一种格式转为另一种格式。
比如讲 yaml 转为 toml(我喜欢的文件类型):
03 总结
好的工具可以提升开发速度,我们要善于使用工具。当然,有能力,你也可以自己生产工具。有好工具记得分享,让更多人知晓、使用。
我是 polarisxu,北大硕士毕业,曾在 360 等知名互联网公司工作,10多年技术研发与架构经验!2012 年接触 Go 语言并创建了 Go 语言中文网!著有《Go语言编程之旅》、开源图书《Go语言标准库》等。
坚持输出技术(包括 Go、Rust 等技术)、职场心得和创业感悟!欢迎关注「polarisxu」一起成长!也欢迎加我微信好友交流:gopherstudio