跨语言的 RPC 框架,通过代码生成器为多种编程语言构建可互通的客户端与服务端。
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
使用 npm 全局安装 quicktype 命令行工具
npm install -g quicktype - 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 数据每日更新。
相关项目
一个快速的 Python 序列化与校验库,基于类型注解编解码 JSON、MessagePack、YAML 和 TOML。
开源 JSON 编辑器,可将 JSON、YAML、CSV、XML 转为可交互的图形。
一种声明式模式语言,可由同一份 .skir 文件生成 TypeScript、Python、Java、Go、C++ 等多语言的类型安全数据模型与 RPC 代码。
基于编译期转换的 TypeScript 库,把纯类型定义编译为运行时校验、JSON 序列化等函数。
面向 .NET 和 Unity 的高性能、低内存分配 YAML 1.2 库,支持源码生成的序列化。