jschon
A JSON toolkit for Python developers.
What it is and what it does
jschon is a JSON Schema validator and toolkit for Python that implements drafts 2019-09 and 2020-12 of the JSON Schema specification. It compiles and indexes schemas, loads $ref definitions from local and remote sources, and supports custom keywords, vocabularies, and meta-schemas. Beyond validation, it provides a JSON data model and implements RFC 6901 (JSON Pointer), RFC 6902 (JSON Patch), and a draft specification for Relative JSON Pointer.
The package is designed for developers who need to validate JSON against schemas and perform structured JSON transformations. It depends only on rfc3986 for URI handling and installs with low friction. However, the repository is archived and abandoned, with the last release in October 2023, which means no active maintenance or bug fixes should be expected going forward.
Use it for:
- Validate incoming JSON payloads against a schema before processing in web APIs or data pipelines.
- Compile and reuse JSON schemas for repeated validation of similar data structures.
- Apply JSON Patch operations to modify JSON documents in a standardized way.
- Navigate and reference parts of JSON documents using JSON Pointer syntax.
- Implement custom validation keywords or vocabularies for domain-specific schema requirements.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Validates JSON data against JSON Schema (drafts 2019-09 and 2020-12) and provides tools for JSON manipulation including Pointer, Patch, and Relative Pointer operations.
Yes, if you need a JSON Schema validator for drafts 2019-09 or 2020-12 and can accept that the project is no longer maintained. The package is stable, has no known vulnerabilities, and installs cleanly with minimal dependencies. However, do not adopt it for new projects requiring active maintenance or future compatibility updates—consider an actively maintained alternative if long-term support is critical.
Install
jschon on PyPI
pip
pip install jschonuv
uv add jschonpoetry
poetry add jschonInstalling jschon
Before you install
Low friction install with a single runtime dependency (rfc3986). However, the repository is archived and marked abandoned as of the latest commit, with no releases since 2023-10-22, which may affect long-term maintenance and support.
License in practice
MIT license is permissive and poses no restrictions on commercial or private use, modification, or redistribution.
Quickstart
pip install jschon
from jschon import create_catalog, JSON, JSONSchema
create_catalog('2020-12')
schema = JSONSchema({"type": "string"})
result = schema.evaluate(JSON("hello"))
print(result.output('basic'))
Requires Python 3.8 or later. For remote $ref support, requests library must be installed separately via pip install jschon[requests].
Verify before relying
- Whether the abandoned status and lack of recent releases affect real-world reliability or compatibility with current Python tooling.
- Performance characteristics when validating large or deeply nested JSON documents.
- Whether custom keyword and vocabulary support covers the specific meta-schemas your project requires.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (~=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — rfc3986 |
| Maintenance | abandoned — 1,027 days since the last release |
| Last repo commit | (repository archived) |
| First released | |
| Downloads | 340,063/month — #7,416 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: jschon-0.11.1-py3-none-any.whl
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
jsonschema-rsjsonschema-rs validates JSON data against JSON…
permissive · top 5,000 on PyPI
jsonschemajsonschema validates Python data structures…
permissive · top 100 on PyPI
jsonpointerResolves JSON Pointers according to RFC 6901,…
permissive · top 1,000 on PyPI
jsonpatchApplies JSON Patches according to RFC 6902,…
permissive · top 1,000 on PyPI
check-jsonschemaA command-line tool and pre-commit hook that…
permissive · top 5,000 on PyPI
fastjsonschemaValidates JSON data against JSON Schema…
permissive · top 1,000 on PyPI
gensonGenSON generates JSON Schema documents from…
permissive · top 5,000 on PyPI
jsonschema-specificationsProvides JSON Schema metaschemas, vocabularies,…
permissive · top 100 on PyPI
json-specImplements JSON Schema, JSON Pointer, and JSON…
permissive · top 15,000 on PyPI
pyangpyang validates YANG data models (RFC 7950),…
permissive · top 15,000 on PyPI