Repolode
glideapps

glideapps/quicktype

从 JSON、JSON Schema、TypeScript 和 GraphQL 查询生成多种语言的强类型模型与序列化代码。

Star
13,909
Fork
1,195
未关闭 Issue
235
最近提交
8天前

这是什么?

quicktype 可以把示例 JSON、JSON Schema、TypeScript 类型定义或 GraphQL 查询转换为多种编程语言的强类型数据模型和序列化代码。开发者无需手写数据类,就能在类型安全的代码中处理 JSON 数据。

使用方式包括:可离线运行、不会上传数据的网页版 app.quicktype.io,全局安装的 npm 命令行工具,以及用于 JavaScript 或 TypeScript 的 quicktype-core 包。推荐流程是先从样例数据推断 JSON Schema,审阅后提交到项目中,再在构建过程中为各语言生成模型。

支持的输出语言包括 Swift、Kotlin、Java、C#、Go、Rust、Python、TypeScript、C++、Dart、Scala、Elm 等。命令行工具和 Node.js 包需要 Node.js 20 或更高版本。

核心功能

  • 01支持从 JSON 样例、JSON Schema、TypeScript 和 GraphQL 查询推断类型。
  • 02可生成 Swift、Go、Rust、Java 等十余种语言的模型代码。
  • 03提供可离线使用的网页版,样例数据不会上传。
  • 04提供命令行工具和 quicktype-core 的 JavaScript 接口。
  • 05支持自定义渲染器,扩展输出语言。

适用场景

  • 根据后端 JSON 接口响应为移动应用生成强类型模型。
  • 在仓库中维护 JSON Schema,并为多个服务生成一致的数据模型。
  • 在原型阶段根据样例 API 数据快速生成 Go 或 Rust 结构体。
  • 为不同语言技术栈建立可统一序列化的数据契约。

快速上手

  1. 1

    使用 npm 全局安装 quicktype 命令行工具

    npm install -g quicktype
  2. 2

    通过标准输入将 JSON 示例生成为 Go 源代码

    echo '[1, 2, 3]' | quicktype -o ints.go

使用前须知

  • quicktype 命令行工具和 Node.js 包需要 Node.js 20 或更高版本。

收录于专题

标签

常见问题

quicktype 是什么?
从 JSON、JSON Schema、TypeScript 和 GraphQL 查询生成多种语言的强类型模型与序列化代码。 quicktype 可以把示例 JSON、JSON Schema、TypeScript 类型定义或 GraphQL 查询转换为多种编程语言的强类型数据模型和序列化代码。开发者无需手写数据类,就能在类型安全的代码中处理 JSON 数据。
quicktype 可以免费使用吗?用的什么许可证?
quicktype 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
quicktype 还在维护吗?
活跃维护中。quicktype 最近一次提交是在 2026年10月30日。
quicktype 适合用来做什么?
根据后端 JSON 接口响应为移动应用生成强类型模型。 在仓库中维护 JSON Schema,并为多个服务生成一致的数据模型。 在原型阶段根据样例 API 数据快速生成 Go 或 Rust 结构体。 为不同语言技术栈建立可统一序列化的数据契约。
quicktype 怎么安装和运行?
使用 npm 全局安装 quicktype 命令行工具: npm install -g quicktype 通过标准输入将 JSON 示例生成为 Go 源代码: echo '[1, 2, 3]' | quicktype -o ints.go
在哪里获取 quicktype?
源代码和安装说明在 GitHub 上:https://github.com/glideapps/quicktype

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目