← 返回工具箱

JSON 转类型

JSON TO TYPE · 生成器

本地推断 JSON 结构,一键生成 TypeScript / Go / Java 等 9 种语言的类型定义,int/float 与可空字段都分得清。

JSON 输入
类型定义
推断规则:整数与浮点自动区分(可强制全按 float);数组元素递归合并,同名字段类型不一致生成 union;null 字段标记为可空;重名类型自动加后缀。纯本地推断,数据零上传。

>_ 使用指南 · GUIDE

粘贴一段接口返回的 JSON 示例,本地推断结构,一键生成 TypeScript、Go、Java、Python 等 9 种语言的类型定义。推断做了该做的区分:整型与浮点分清(int vs float)、可空字段标出(null → 可选/指针类型)、数组取元素合并类型。

典型场景:对接新接口时不用手写一屏 interface、把响应结构转成 Go struct 直接 unmarshal、给测试数据配类型。推断与生成全程本地完成,接口数据零上传。

>_ 常见问题 · FAQ

Q1 · 为什么要从 JSON 生成类型定义?

JSON 是无类型的数据,硬编码处理字段名全靠记忆,拼错一个字段名运行时才炸。类型定义把结构写进代码:编辑器自动补全、改字段名全局可查、静态检查提前抓错。手写一遍太枯燥且易漏——粘贴示例自动生成,是「动态数据静态化」最省力的路径。

Q2 · 生成的类型准确吗?字段全靠猜吗?

推断基于你粘贴的示例:值是 1 就推断整数、是 "abc" 就推断字符串、是 null 就标可空。准确度取决于样本代表性——示例里没出现的字段不会出现在类型里,偶发为 null 的字段如果示例恰好非空也会被推断成必有。规范做法:生成后人工补正确认关键业务字段的类型与可空性。

Q3 · 同一个数组里元素结构不一致怎么办?

工具会合并数组元素的类型(字段取并集,差异字段按可空处理),这是对「列表里有可选字段」的常见形态的合理近似。如果数组混着完全不同的对象(如多态响应),建议分类型手工拆分——生成器给出的是起点,不是终稿。

Q4 · 支持哪些语言?格式是什么样的?

TypeScript(interface/type)、Go(struct + json tag)、Java(class)、Python(dataclass/TypedDict)等 9 种。各语言按其生态惯例生成:Go 带序列化标签、TS 保留可选标记。生成后直接贴进项目即可编译,按需微调命名风格。

Q5 · 生产环境的接口数据可以贴进来吗?

生成过程本地完成、零上传,技术上说可以。但按最小暴露原则,仍建议先脱敏再粘贴:真实用户数据、token 替换成假值——结构推断只关心类型不关心具体值,脱敏不影响生成结果。

嵌入代码

把下面的代码复制到你的网页,即可将本工具嵌入为 iframe(自动隐藏导航与页脚)。

高度px
此工具在你的浏览器本地运行,输入内容不会上传。按 Ctrl K 可随时切换到其他工具。