关于此工具
粘贴一个 JSON 示例,这个工具就会生成可直接使用的 Go 结构体,为每个键都配好 `json:"field"` 标签。一切都在你的浏览器本地运行,因此你的 JSON 永远不会上传到任何地方。
生成器调用 JSON.parse 并递归遍历结果:字符串变成 string,布尔值变成 bool,整数变成 int64,带小数的数字变成 float64,null 变成 interface{},数组变成第一个元素类型的切片(为空时为 []interface{}),每个对象各自变成一个具名的嵌套结构体。字段名被转换为可导出的 PascalCase(像 ID 和 URL 这样常见的缩写会大写),而原始键会保留在 json 标签中。
用它从 API 响应或配置文件快速引导出 Go 模型,然后按需手工整理类型。由于 JSON 没有单独的整数类型,像 1.0 这样的值会被读作整数;如果你想要 float64,请加一个小数(1.5)。
常见问题
数字是如何定类型的?
解析出的没有小数部分的值变成 int64;带小数的值变成 float64。JSON 无法区分 1 和 1.0,所以两者都读作 int64。
嵌套对象和数组会怎样处理?
每个对象变成一个单独的具名结构体;数组变成第一个元素类型的切片,如果数组为空或元素为 null 则变成 []interface{}。
字段名是合法的 Go 吗?
键被转换为可导出的 PascalCase,原始键保留在 json 标签中,因此即使是 user_id 或 first-name 这样的名字,JSON 也能正确往返。
我的 JSON 会被发送到服务器吗?
不会。解析和代码生成完全在你的浏览器中进行;不上传或存储任何内容。