Generate strongly-typed models and serializers from JSON, JSON Schema, TypeScript, and GraphQL for many programming languages.
quicktype is a tool that automatically generates strongly-typed data models and serialization code from JSON, JSON Schema, TypeScript, and GraphQL definitions. It solves the problem of manually writing repetitive, error-prone model code when working with JSON APIs across different programming languages.
Developers working in multi-language stacks who need consistent, type-safe data models, especially those integrating with JSON APIs or building full-stack applications.
Developers choose quicktype for its extensive language support, ability to generate models from multiple input formats, and its focus on reducing boilerplate while ensuring type safety across different parts of their application stack.
Generate types and converters from JSON, Schema, and GraphQL
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Accepts JSON, JSON Schema, TypeScript interfaces, and GraphQL queries as source definitions, allowing model generation from diverse data formats without manual conversion.
Generates code for over 20 programming languages including TypeScript, Swift, Kotlin, and Rust, enabling consistent type-safe models across full-stack applications.
Provides both a CLI for build integration and a JavaScript library (quicktype-core) for programmatic use, ideal for CI/CD pipelines and automated workflows.
Encourages generating and committing JSON schemas first, then deriving models, which promotes consistency and reduces errors in multi-language environments.
TypeScript input is labeled as experimental in the README, which may lead to instability or incomplete features for teams relying heavily on TypeScript definitions.
Creating custom renderers requires extending core classes, a process that is poorly documented and demands deep understanding of the codebase, making it inaccessible for quick tweaks.
The quicktype-core API and CLI options are complex, with many parameters, which can be overwhelming for developers seeking simple integrations beyond basic usage.