Command Palette

Search for a command to run...

JS

JSON 走向结构

JSON转换为带有json标签的Go结构定义,嵌套对象成为内联结构,对象数组被合并,字段名称遵循Go约定。运行客户端。

什么是 JSON to Go 结构转换器?

JSON to Go 结构转换器将一个 JSON 文档变成描述它的 Go 类型声明,因此您可以使用编码/json 取消编组相同的数据,而不是手工输入结构。每个 JSON 对象都变成 Go 结构,每个字段都携带一个 json:"key" 标签,将其映射回原始名称,并且从值推断标量类型:JSON 字符串变成字符串,整数变成 int,十进制变成 float64,真和假变成 bool,null 变成 interface{}。粘贴有效负载,然后返回一个准备编译的类型块。

它的存在是因为从真实的 API 响应编写 Go 结构很乏味,并且很容易被微妙地弄错。字段名称必须导出并遵循 Go 约定,因此 id 变为 ID,user_url 变为 UserURL,而 json 标签必须保留确切的原始密钥或 json。Unmarshal 默默跳过该字段。嵌套对象需要自己的结构,并且对象数组需要覆盖任何元素所具有的每个密钥的单个结构。在深度嵌套响应中执行此操作是错误蔓延的地方。转换器一致地应用这些规则:嵌套对象成为内联结构,对象数组被合并,因此仅出现在某些元素中的密钥仍然存在于生成的类型中。

Everything都在你的浏览器中运行你粘贴的JSON在你自己的设备上用JavaScript解析和分析,所以没有任何东西被上传,记录或存储,一旦页面加载,该工具就一直与断开连接的网络有效负载是私有API响应或包含你宁愿不发送到任何地方的密钥和值时,这很重要,你可以重命名根类型,当你需要更宽的类型时将整数切换到int64,当你希望编码输出中省略零值时,可以为每个标签添加省略。

一个简短的示例显示了 go JSON 到 struct 映射。粘贴{"order_id":1042,"total":19.5,"items":[{"sku":"A1","qty":2},{"sku":"B2","qty":1,"gift_note":"生日快乐"}]},将 order 类型输入为 Root 类型,然后单击 Convert。您将 type Order struct 与 OrderID int、Total float64 和 Items []struct 保存 Sku 字符串、Qty int 和 GiftNote 字符串。尽管只有第二项有 GiftNote,但 GiftNote 仍然存在,因为 JSON to Go struct 转换器将数组的每个元素合并为一种类型。

如何使用 JSON to Go 结构转换器?

  1. 粘贴您的 JSON

    JSON 对象或数组粘贴到输入框中,如果您想在使用自己的数据之前看到生成的 struct 的形状,请先加载样本。

  2. 命名根类型

    输入顶级结构的名字,例如 User 或 ApiResponse。它被清理成有效的导出 Go 标识符,因此它会按写入的方式进行编译。

  3. 设置整数和标签选项

    选择整数的 int 或 int64,如果您希望在将 struct 编码回 JSON 时省略空字段,请打开 omitempty。

  4. 转换并复制

    击转换来构建结构定义,然后将它们复制到您的 Go 文件中,无效的 JSON 会用精确的解析器消息报告,以便您可以修复它。

主要特点

  • 正确的 json 标签

    每个字段都保留一个 json:"original_key"标签,因此 json。Unmarshal 将数据映射回确切的 JSON 名称,即使 Go 字段已重命名以遵循约定。

  • Go-convention 字段名称

    键导出,常见的首字母大写,因此 id 变为 ID,user_url 变为 UserURL,html_body 变为 HTMLBody,符合 golint 的期望。

  • 直列嵌套结构

    Nested JSON 对象成为任何深度的内联结构文字,因此整个形状都存在于一个声明中,您可以粘贴为单个块。

  • 合并对象数组

    对象数组产生一个结构,涵盖任何元素拥有的每个密钥,并且密钥的冲突值类型会回退到接口{}而不是失败。

Frequently Asked Questions

JSON to Go struct 转换器将一个 JSON 文档转换为描述它的 Go 类型声明,每个对象都变成一个 struct,每个字段都得到一个 json:"key" 标签,并且推断出值类型,因此您可以使用编码/json 解编相同的数据,而无需手工编写 struct。

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!

json to gojson to go structgo json to structjson to golang structgo struct generatorjson to structconvert json to gogolang struct from jsonfree json to gono signup json to go