quicktype infers types from sample JSON data, then outputs strongly typed models and serializers for working with that data in your desired programming language. In short, quicktype makes it a breeze to work with JSON type-safely. For more explanation, read A first look at quicktype.
quicktype in your browser at app.quicktype.io.
Supported Input Languages
- JSON Schema
- GraphQL queries
- JSON URLs
Supported Output Languages
- JSON Schema
- Simple Types
Setup, Build, Run
$ npm install $ npm run build $ script/quicktype # rebuild and run
Install Visual Studio Code, open this workspace, and install the recommended extensions:
$ code . # opens in VS Code
Live-reloading for quick feedback
When working on an output language, you'll want to view generated
output as you edit. Use
npm start to watch for changes and
recompile and rerun
quicktype for live feedback. For example, if you're
developing a new renderer for
fortran, you could use the following command to
rebuild and reinvoke
quicktype as you implement your renderer:
$ npm start -- "--lang fortran test/inputs/json/samples/bitcoin-block.json"
The command in quotes is passed to
quicktype, so you can render local
files, URLs, or add other options.
quicktype has a lot of complicated test dependencies:
- Java, Maven
We've assembled all of these tools in a Docker container that you build and test within:
$ script/dev # ... Docker will build the image and start a bash shell $ npm run test
Test only a specific fixture
$ FIXTURE=golang npm test