JSON 转 GraphQL Schema 生成器 在线工具
在浏览器中将 JSON 示例转换为 GraphQL SDL 类型定义。你粘贴的任何内容都不会被上传。
JSON 转 GraphQL Schema 生成器完全在你的浏览器中运行。你粘贴的 JSON 示例和生成的 SDL 永远不会上传到 ArrayKit。
打开 JSON 转 TypeScript 转换器
关于 JSON 转 GraphQL
JSON to GraphQL Schema 可将一个 JSON 示例转换为可直接使用的 GraphQL SDL 文档。粘贴一个对象后,它会推断出一个 `type Root` 块,将数字映射为 Int 或 Float,字符串映射为 String,布尔值映射为 Boolean,任何名为 id 的键映射为 ID 标量。数组会变成非空的列表类型,如 [String!]!,嵌套对象会被拆分为各自独立的命名类型(由字段键生成 PascalCase 命名),从而让 schema 保持可读,而不是深度内联。当你从示例响应原型设计一个 GraphQL API、迁移一个 REST 端点,或在后端尚未建成前草拟 resolver 时,这非常有用。你可以设置自定义的根类型名称,复制生成的 SDL,或将其下载为 .graphql 文件。一切都在浏览器中本地运行——你的 JSON 示例不会被上传到任何地方。
功能特性
- 从任意 JSON 对象推断出完整的 GraphQL `type` 块
- 根据数字是否为整数将其映射为 Int 或 Float
- 识别 "id" 字段并将其类型化为 GraphQL 的 ID 标量
- 自动将嵌套对象转换为各自独立的命名类型
- 数组会变成非空的列表类型,例如 tags: [String!]!
- 对 schema 中重复出现的嵌套类型名称进行去重
- 自定义根类型名称字段,默认值为 "Root"
- 复制 SDL 或将其下载为 .graphql 文件,全部在客户端完成
如何使用 JSON 转 GraphQL
- 在输入区粘贴一个 JSON 对象,或加载示例
- 可选地设置一个根类型名称
- 在右侧查看生成的 GraphQL SDL
- 复制 schema 或将其下载为 .graphql 文件
示例
输入
{"id":1,"name":"Ada"}
输出
type Root {
id: ID!
name: String!
}
id 字段被类型化为 ID,name 变成一个非空的 String。
常见错误与故障排除
- 每个字段都是必填的(String!),但某些响应中会省略该键。 — 在示例中为可能缺失的字段包含 `null` 值——JSON 转 GraphQL Schema 生成器会将 null 或缺失的值处理为可空类型,而不是添加 !。
- 某个数组字段生成的是 [String]! 而不是带类型的列表。 — 在示例数组中至少提供一个非空元素,以便工具能够推断其元素类型;空数组默认使用 [String]。
- 两个不同的嵌套对象生成了相同的类型名称。 — 在粘贴前重命名其中一个 JSON 键,或者之后在生成的 SDL 中重命名类型——生成器按名称去重,因此相同的键会共用一个类型。
- 提示栏显示 "Invalid JSON",没有生成任何 schema。 — 检查是否有多余的逗号、未加引号的键或使用了单引号——工具需要严格的 JSON 格式,错误信息中会包含行号和列号以便修复。
常见问题
- JSON 转 GraphQL Schema 生成器会生成什么?
- 它会读取一个 JSON 示例并输出 GraphQL SDL——一个或多个 `type` 块,包含字段名以及推断出的标量、列表或对象类型——你可以将其直接放入 GraphQL schema 文件中使用。
- 它是如何在 Int、Float、ID 和 String 之间做出判断的?
- 整数会变成 Int,小数会变成 Float;任何字面上名为 "id" 的字段都会被类型化为 GraphQL 的 ID 标量;文本会变成 String,true/false 会变成 Boolean。
- JSON 转 GraphQL 工具能处理嵌套对象和数组吗?
- 可以。嵌套对象会变成各自独立的命名 GraphQL 类型(由字段键生成 PascalCase 命名),数组会变成非空的列表类型,如 [String!]!,元素类型从第一个元素推断得出。
- 我可以重命名生成的根类型吗?
- 可以。使用根类型名称字段——默认值为 "Root",但在复制 schema 之前,你可以将其设置为任何名称,例如 "User" 或 "Product"。
- 我的 JSON 示例会被上传到某处吗?
- 不会。JSON 转 GraphQL Schema 生成器完全在你的浏览器中运行。你粘贴的 JSON 以及生成的 SDL 永远不会离开你的设备。
- 无效或格式错误的 JSON 会怎样处理?
- 工具会显示一个错误提示栏,说明问题所在,并在可能的情况下给出行号和列号,而不是生成一个损坏的 schema。
相关工具
全部 ArrayKit 工具