如何从 JSON 生成 TypeScript 接口或 Python 数据类
准备非空且语法正确的 JSON,选择 TypeScript 或 Python 后即可生成对应的类型定义;默认输出为 TypeScript,根类型名称为 Root。
用途与适用场景
当你已经有一段 JSON 数据,并想把它整理成项目可以使用的类型定义时,可以使用 JSON to Code。它会读取提供的 JSON 文本,根据其中的值推断字段类型,并生成 TypeScript 接口或 Python 数据类。对于需要在接口数据、配置数据或简单数据样本之间转换的场景,这种方式可以减少手动书写字段的工作量。
工具默认选择 TypeScript,默认根类型名称为 Root。如果生成的类型需要对应具体业务对象,可以提供自定义的根类型名称。使用前应准备一段具有代表性的 JSON,因为生成结果反映的是输入文本呈现出的结构。
操作步骤:从 JSON 生成类型定义
- 准备一段非空的 JSON 文本。内容不能只包含空格、换行或其他空白字符,并且需要符合 JSON 语法。若数据来自接口响应或配置文件,先确认复制时没有遗漏括号、引号或逗号。
- 将 JSON 文本粘贴到输入区域。检查对象中的字段和值是否符合预期,尤其留意字符串、数字和布尔值的写法。JSON 中的字符串需要使用双引号,布尔值应使用 JSON 允许的形式。
- 选择输出语言。可选语言为 TypeScript 或 Python;如果不选择,工具会使用默认的 TypeScript。
- 按需填写根类型名称。未提供自定义名称时,根类型名称为 Root;如果名称需要与业务对象对应,可以在生成前提供其他根类型名称。
- 执行生成并查看结果。输入为 JSON 对象时,TypeScript 输出会采用接口声明,Python 输出会采用数据类声明。对象中包含的嵌套对象也会获得相应的嵌套生成类型,引用这些对象的字段会使用对应类型。
- 对照原始 JSON 检查生成内容。确认字段名称、字段类型和嵌套关系符合当前样本,再根据项目的命名规则和实际数据结构决定如何使用。若样本并不能代表其他数据情况,不要仅凭一次样本推断完整的数据模型。
如何理解生成结果
结果中的字段类型来自输入 JSON 中对应的值。字符串在 TypeScript 中表示为 string,在 Python 中表示为 str;布尔值在两种语言中分别表示为 boolean 和 bool;数字在 TypeScript 中表示为 number,在 Python 中表示为 float。输入对象中的嵌套对象会对应生成嵌套类型,引用这些对象的字段则会使用相应类型。
因此,结果描述的是这段 JSON 所呈现的结构,而不是对其他数据情况的推断。例如,某个字段没有出现在样本中,结果就不会依据未提供的信息补充它;如果同一字段在实际数据中可能出现不同类型,也需要在使用前人工复核。生成的类型还应结合项目需要检查名称、组织方式以及与现有代码的衔接。
输出范围也有明确边界:工具支持 TypeScript 接口和 Python 数据类。若选择这两种语言之外的语言,不会生成结果。输入为空白内容或不符合 JSON 语法时,同样不会进入正常的代码生成流程。
使用示例
开发者需要把一条包含姓名和年龄的 JSON 数据整理成 TypeScript 类型定义。
输入 {"name":"Lin","age":30},选择 TypeScript,并将根类型名称设为 User,然后执行生成。
选择 TypeScript 并将根类型名称设为 User 后,结果会呈现一个名为 User 的接口声明,其中 name 对应 string,age 对应 number。
使用限制
- 工具的输出范围限于根据所提供 JSON 生成 TypeScript 接口或 Python 数据类;选择其他语言时不会生成结果。
常见错误
- 如果输入为空、只有空白字符,或 JSON 语法不正确,工具会失败而不会生成结果。请先补充实际 JSON 内容,再检查双引号、逗号、括号和布尔值等写法,并重新提交。
常见问题
可以直接粘贴 JSON 文本吗?
可以,前提是文本不是空白内容,并且能够按 JSON 语法解析;空白输入或格式错误的 JSON 不会生成结果。
如何生成 Python 类型定义?
可以选择 Python,工具会针对 JSON 对象生成 Python 数据类;如果不选择语言,则默认生成 TypeScript 接口。
可以修改生成结果的根类型名称吗?
可以提供自定义根类型名称;如果不提供,默认名称为 Root。