Generate strongly-typed models and serializers from JSON, JSON Schema, TypeScript, and GraphQL for many programming languages.
Quicktype is a developer tool that automatically generates strongly-typed data models and serialization code from JSON, JSON Schema, TypeScript, or GraphQL definitions. It solves the problem of manually writing repetitive, error-prone model classes to safely parse and serialize JSON data across different programming languages.
Developers and teams working in multi-language stacks (e.g., mobile, web, backend) who need consistent, type-safe data models, or anyone tired of writing boilerplate serialization code.
It dramatically speeds up development by generating correct, production-ready models from sample data or schemas, ensures consistency across different parts of a system, and integrates easily into build processes and existing codebases via CLI, library, or web app.
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 samples, JSON Schema, TypeScript, and GraphQL queries, even fetching from live API URLs, making it adaptable to various data sources without manual conversion.
Generates code for over 20 languages like Swift, Kotlin, and Python, enabling consistent type-safe models across multi-platform projects from a single schema.
Produces strongly-typed classes or interfaces with serializers/deserializers, reducing runtime JSON parsing errors and eliminating boilerplate code for data interchange.
Offers CLI, JavaScript API, and web app, allowing easy integration into CI/CD pipelines to regenerate models from committed schemas, as shown in the README examples.
The README marks TypeScript input as experimental, which may lead to instability, limited features, or breaking changes when generating from TypeScript definitions.
Adding custom languages or renderers requires extending internal classes, as per the guide, which has a steep learning curve and is not trivial for average users.
The CLI and JavaScript API rely on Node.js, adding tooling complexity and potential versioning issues for teams in non-JavaScript ecosystems like pure mobile or embedded development.