首发!浏览器端通过Go Struct生成JSON模型


2024/08/15

前言

有时候在用 go 写一些功能的时候,定义好了 struct,但是在一些地方(比如前端工程或 api 接口数据定义)都需要使用到这个结构体对应的 JSON 数据。

之前找到了一个 goland 的插件:go-struct-to-json,不过好像只支持一级属性,二级的就不支持了。于是乎就自己造轮子,集成到了 油条工具箱,下面来说说具体有哪些用法吧!

使用

例如我们现在有一个结构体,是这样的:

type Account struct {Id int64Name stringAge intAddress string}

如果我们需要转换,打开工具地址:Go 结构体 /JSON 转换 ,然后输入,点击最下方的Go 结构体转 JSON 即可:
首发!浏览器端通过 Go Struct 生成 JSON 模型
最终输出结果为:

{"Id": 0,"Name": "","Age": 0,"Address": ""}

Tag 支持

如果不想以字段名作为 json 字段,那么此工具同样支持 go 语言的 tag 属性,这是我们则需要输入:

type Account struct {Id      int64 `json:"id"`//...}

结果为:

{"id": 0}

同理,也支持忽略字段,只需要在 tag 中写入 json:"-" 即可

内嵌结构体支持

此工具也同样支持内嵌结构体,例如:

type Account struct {Id      int64 `json:"id"`Address struct {City   string `json:"city"`Street string `json:"street"`Number int    `json:"number"`} `json:"address"`}

结果为:

{"id": 0,"address": {"city": "","street": "","number": 0}}

JSON 转结构体

同样,本工具也支持 json 转为 go 的结构体,只需要将 json 代码输入到右侧 json 一栏中,点击下方的 JSON 转 Go 结构体 即可,这里就不过多叙述。

后记

如果大家在使用油条工具箱过程中,有任何建议或问题可以支持在此反馈,希望此工具能够帮助到你!