@adobe/jsonschema2md makes it easier by providing a number of scripts that can turn JSON Schema files into readable Markdown documentation that is ready for consumption on GitHub or processed using Jekyll or other static site generators. JSON Schema 2019-09 (partial)
Python
FastAPI (MIT) is an API framework based on Python 3.6+ types that generates OpenAPI 3 schemas, including JSON Schemas for all the models declared.
Schema generators need not support generating every schema keyword.
For schema generators, compatibility with a draft means that either:
Schemas produced explicitly set the draft with $schema
Schemas produced lack $schema but are valid against the appropriate meta-schema
For example, the only incompatibilities between draft-04 and draft-06 involve exclusiveMinimum, exclusiveMaximum, and id vs $id. If a generator does not set $schema and does not ever emit those keywords, then it is compatible with draft-06 even if it was written with draft-04 in mind.
From code
.NET
Json.NET (AGPL-3.0) - generates schemas from .NET types
NJsonSchema - (Ms-PL) - generates schemas from .NET types, see issue 574 for draft-06+ support progress
PHP
Liform (MIT) - generates schemas from Symfony forms
TypeScript
Python
Pydantic (MIT) - generates schemas from Python models based on Python 3.6+ type hints.
Java
jsonschema-generator (Apache 2.0) - generates schemas from Java types supports Draft 7 and Draft 2019-09
Scala
scala-jsonschema (Apache 2.0) - generates schemad out of Scala case classes
From data
Java
Scala
Schema Guru (Apache 2.0) - CLI util, Spark Job and Web UI for deriving JSON Schemas out of corpus of JSON instances; see issue 178 for progress towards draft-06+ support
quicktype.io - infer JSON Schema from samples, and generate TypeScript, C++, go, Java, C#, Swift, etc. types from JSON Schema
Generators from schemas
Tools that generate artifacts from schemas need not support every keyword,
as not all keywords work well for generative use cases.
Generators are considered compatible with a draft if they support (or benignly
ignore) the appropriate $schema value, and interpret the keywords that they
do support according to that draft.
For example, if a generator that was originally written for draft-04 does not
support id, exclusiveMinimum, or exclusiveMaxium, then as long as it does
not require a draft-04 $schema, it is compatible with draft-06 since those
are the only keywords that changed.
Code generation
Delphi
DJsonSchema (MIT) - JSON Schema reader and code generator for Delphi.
Elm
Java
jsonCodeGen (MIT) - Groovy based generation tasks from JSON schema. Already includes templates/generators for Java Beans, Swagger specification files and PlantUML diagrams.
quicktype.io - infer JSON Schema from samples, and generate TypeScript, C++, go, Java, C#, Swift, etc. types from JSON Schema
PHP
Python
yacg (MIT) - parse JSON Schema and OpenApi files to build a meta model from them. This meta model can be used in Mako templates to generate source code, other schemas or plantUml.
statham (MIT) - generate type-annotated models from JSON Schema documents.
Rust
schemafy - generates Rust types and serialization code from a JSON schema. supports Draft 4
Various levels of support for UI generation primarily from the validation vocabulary or combined with UI specific definition.
Data from schemas
Python
hypothesis-jsonschema (MPL) draft-07, -06, -04; takes any schema, even with complex and interacting constraints, and returns a Hypothesis strategy which can generate valid documents for testing.
Draft compatibility for utilities is generally specific to the purpose of
the utility, and decided on a case-by-case basis.
General processing
JavaScript
json-schema-ref-parser (MIT) Tools for dereferencing non-cyclic schemas, bundling referenced schemas into a single file, and other $ref processing.
@cloudflare/json-schema-walker (JSON Schema Tools), draft-07, -06, -04, and Cloudflare’s Doca extensions Walks schemas and runs pre- and post-walk callbacks. Can modify schemas in place. (BSD-3-Clause)
@hyperjump/json-schema-core
(MIT) Tools for working with schemas that handle identifiers and
references. Build vocabularies and other JSON Schema based tools.
hypothesis-jsonschema (MPL) draft-07, -06, -04; takes any schema, even with complex and interacting constraints, and returns a Hypothesis strategy which can generate valid documents for testing.
Editors
Altova XMLSpy 2019r3 - Graphical JSON Schema editor for draft-06 and draft-7, as well as validation of JSON files based on JSON Schema
Dashjoin JSON Schema editor - Graphical online JSON Schema editor for draft-06 (minus oneOf, anyOf, allOf, not). The generated schema can be tested immediately via a form that is driven by it.
JSONBuddy - Text and grid-style JSON editor and validator with context sensitive entry-helpers and sample data generation based on JSON schema. Support for draft-4, draft-6 and draft-7.
JSONEditor Online - View, edit, format, and validate JSON online Support draft-4, draft-6, and draft-7.
Oxygen JSON Editor - JSON editor with a variety of editing features and helper views. Support for validation and editing JSON Schema draft-4, draft-6, and draft-7. Validation and editing of JSON files based on JSON Schema.
Stoplight Studio - JSON Schema IDE (text-based and GUI) with support for JSON/YAML linting, which can also be based on JSON Schema rules via Spectral. Support for draft-4, draft-6 and draft-7.
Visual Studio Code - Schema driven code completion, hovers and validation for editing JSON files (including schemas)
WebStorm, IntelliJ IDEA, and other JetBrains IDEs - Code completion, documentation, and validation for JSON and YAML files using JSON Schema. Support for draft-4, draft-6, and draft-7.
Eclipse IDE - Rich JSON edition supporting schema for instantaneous validation and error reporting, completion, documentation.
Documentation generators
jsonschematic - Svelte-based schema viewer. Runs as a local web app. Supports draft-7.
docson - Javascript-based schema viewer. Runs as a local web app. Supports draft-4.
json-schema-for-humans - Generate HTML representation of a schema. Python-based. Supports draft-7.
json-schema-linter - Lint/validate/parse json-schema itself, and find typos, missing properties, missing required keys, etc. Supports draft 4, 6, and 7.
Stoplight Spectral - A flexible JSON/YAML linter for creating automated style guides, with baked in support for OpenAPI v2/v3 and JSON Schema. Supports draft 4, 6, and 7.