tree-sitter-json
JSON grammar for tree-sitter
What it is and what it does
tree-sitter-json is a grammar definition for the tree-sitter incremental parser framework, focused on JSON documents. It does not parse JSON directly; instead, it provides the syntax rules that tree-sitter uses to build abstract syntax trees (ASTs) from JSON input. This is useful when you need structured analysis of JSON beyond simple deserialization—for example, to extract specific fields, validate structure, or perform linting without loading the entire document into memory.
The package is a compiled extension (available as prebuilt wheels for major platforms) with no runtime dependencies. It sits in the tree-sitter ecosystem alongside similar grammar packages for other languages. Installation requires Python 3.9 or later, and you'll need the tree-sitter Python bindings to actually use it.
Use it for:
- Build a JSON linter or validator that reports precise error locations using the parse tree.
- Extract specific nested fields from large JSON files without deserializing the entire document.
- Implement syntax-aware JSON editing or refactoring tools that preserve formatting.
- Analyze JSON structure programmatically for schema validation or transformation.
- Create language-agnostic JSON tooling by leveraging tree-sitter's multi-language support.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides a JSON grammar parser for tree-sitter, enabling incremental parsing and syntax tree analysis of JSON documents.
Yes, if you are already using tree-sitter for code analysis and need to parse JSON as part of a larger workflow. No, if you simply need to read or validate JSON—use the standard library or a dedicated JSON library instead. The value is in incremental parsing and AST-based analysis, not in basic JSON handling.
Install
tree-sitter-json on PyPI
pip
pip install tree-sitter-jsonuv
uv add tree-sitter-jsonpoetry
poetry add tree-sitter-jsonInstalling tree-sitter-json
Before you install
Medium install friction due to compiled wheels; prebuilt binaries available for common platforms (macOS, Linux x86_64/aarch64, Windows). Package is aging (641 days since last release) but repository remains active with recent commits.
License in practice
MIT license permits free use, modification, and distribution with minimal restrictions—suitable for both open-source and proprietary projects.
Quickstart
import tree_sitter_json
# tree_sitter_json provides the JSON grammar for tree-sitter
# Use with tree-sitter's Python bindings to parse JSON
Requires Python 3.9 or later; tree-sitter Python bindings must be installed separately to use this grammar.
Verify before relying
- Whether tree-sitter Python bindings are automatically pulled in or must be installed separately.
- Performance characteristics compared to standard JSON parsing libraries.
- Specific use cases where incremental parsing of JSON provides measurable benefit.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | aging — 641 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 3,540,611/month — #2,584 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: tree_sitter_json-0.24.8-cp39-abi3-macosx_10_9_x86_64.whl; tree_sitter_json-0.24.8-cp39-abi3-macosx_11_0_arm64.whl; tree_sitter_json-0.24.8-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; tree_sitter_json-0.24.8-cp39-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl; tree_sitter_json-0.24.8-cp39-abi3-musllinux_1_2_x86_64.whl; tree_sitter_json-0.24.8-cp39-abi3-win_amd64.whl; tree_sitter_json-0.24.8-cp39-abi3-win_arm64.whl
Keywords: incremental, parsing, tree-sitter, json
Tags
More Linguistic packages
Detects and normalizes text encoding from…
permissive · top 100 on PyPI
tiktokentiktoken is a fast BPE tokenizer that converts…
permissive · top 1,000 on PyPI
chardetDetects character encoding and language in byte…
permissive · top 1,000 on PyPI
text-unidecodeConverts Unicode text to ASCII by…
copyleft · top 1,000 on PyPI
larkLark is a parsing library that builds abstract…
permissive · top 1,000 on PyPI
tree-sitterPython bindings to the tree-sitter parsing…
permissive · top 1,000 on PyPI
tree-sitter-javaProvides a Java language grammar for…
permissive · top 5,000 on PyPI
tree-sitter-tomlProvides a tree-sitter parser grammar for TOML…
permissive · top 5,000 on PyPI
tree-sitter-goProvides a Go language grammar for tree-sitter,…
permissive · top 5,000 on PyPI
tree-sitter-cProvides a C language grammar for tree-sitter,…
permissive · top 5,000 on PyPI
tree-sitter-typescriptProvides TypeScript and TSX language grammars…
permissive · top 5,000 on PyPI
tree-sitter-htmlProvides an HTML grammar for tree-sitter,…
permissive · top 5,000 on PyPI
tree-sitter-objcProvides a tree-sitter grammar for parsing…
permissive · top 5,000 on PyPI
tree-sitter-scalaProvides a tree-sitter grammar for parsing…
permissive · top 5,000 on PyPI
tree-sitter-regexProvides a tree-sitter grammar for parsing…
permissive · top 5,000 on PyPI
tree-sitter-cssProvides a CSS grammar parser for tree-sitter,…
permissive · top 5,000 on PyPI