Validate, format, query, diff, filter, flatten, merge JSON files with dot-notation paths
Memory
Clean JSON Toolkit
Try itLocal JSON / JSONL inspection and manipulation toolkit. Inspect deeply nested structures (path tree, types, sample values per path), query with a jq-style pa...
What it does
Local JSON / JSONL inspection and manipulation toolkit. Inspect deeply nested structures (path tree, types, sample values per path), query with a jq-style path language (no external jq), flatten nested objects/arrays into dot-notation maps and unflatten them back, and validate against a small pragmatic schema (required/type/min/max/regex/enum/item_type). Pure Python 3 standard library, no third-party dependencies, no remote calls.
The skill document
clean-json-toolkit
v0.2.0
Fourth member of the clean-* family. csv handles structured tabular data, text handles unstructured strings, log handles timestamped logs, and json handles nested data — API responses, config files, JSONL event streams.
Pure Python 3 standard library. No jq, no jsonschema, no pip installs.
Scripts
scripts/inspect.py— profile a.jsonor.jsonlfile: tree of every distinct path with types, counts, and N sample values per path.scripts/query.py— jq-style path queries..key.nested,.key[0],.[]iterate,.key.[].fieldmap. Output modes:--json/--jsonl/--lines/--raw. JSONL inputs implicitly iterate at the top level.scripts/flatten.py— flatten nested JSON into dot-notation keys. Reversible with--unflatten. Roundtrip-safe.scripts/validate.py— validate against a small schema (required,type,min/max,min_length/max_length,enum,regex,item_type,allow_extra).scripts/merge.py(NEW in v0.2.0) — merge multiple JSON files into one. Five strategies:deep(default; recursive merge, arrays replace),shallow(top-level only),array-concat(deep + arrays concatenated),array-uniq(deep + arrays deduped),array-extend(require all inputs to be arrays, then concatenate). The canonical agent need: cascade defaults + user + env-specific configs.scripts/patch.py(NEW in v0.2.0) — RFC 6902 JSON Patch. Applyadd/remove/replace/move/copy/testoperations. Build patches inline with--op --path --valueor load from--patch FILE.--strictaborts at first failure,--dry-runwrites to stdout instead. Supports"/items/-"append-to-array syntax.scripts/check_deps.sh— verifypython3.
Quick start
# Inspect
python3 scripts/inspect.py response.json
python3 scripts/inspect.py events.jsonl --max-samples 5
# Query
python3 scripts/query.py data.json '.meta'
python3 scripts/query.py data.json '.users.[].email' --raw
python3 scripts/query.py events.jsonl '.amount' --lines
# Flatten + unflatten roundtrip
python3 scripts/flatten.py config.json flat.json
python3 scripts/flatten.py flat.json nested.json --unflatten
# Validate
python3 scripts/validate.py users.jsonl --schema schema.json
# Merge (NEW v0.2.0) - cascade configs
python3 scripts/merge.py final.json defaults.json user.json env.json
python3 scripts/merge.py all.json events_*.json --strategy array-extend
python3 scripts/merge.py combined.json a.json b.json --strategy array-concat
# Patch (NEW v0.2.0) - RFC 6902 surgical edits
python3 scripts/patch.py doc.json patched.json --op add --path /email --value '"alice@example.com"'
python3 scripts/patch.py config.json updated.json --patch ops.json --strict
python3 scripts/patch.py doc.json /dev/null --op replace --path /age --value 42 --dry-run
Exit codes
| Code | Meaning |
|---|---|
| 0 | success / one or more results |
| 1 | zero results / validation failed / empty input |
| 2 | bad arguments / unsafe path / missing file / invalid JSON / bad schema |
Safety
- Pure Python 3 stdlib. No
eval, nosubprocess, no remote calls. - All paths validated against safe-path policy (same as the other
clean-*toolkits). - Hand-rolled query path tokenizer.
Pairs well with
License
MIT
Related skills
Diagnose and fix JSON failures across parse, encoding, schema, query, size, and contract layers.
Local HTTP client + tiny server toolkit for AI agents. GET / POST / PUT / PATCH / DELETE with retries on 5xx/429, gzip decoding, redirect following, --bearer...
Format and validate JSON files with pretty-printing, indentation control, key sorting, and validation modes supporting stdin, stdout, and file I/O.
Convert JSON data into clean Markdown tables and reports. Use for pasted JSON, API or log output, or any batch of JSON records.
轻量级JSON语法校验工具,递归扫描工作区.json文件并输出结构化错误报告。Use when 需要文件处理、文档转换、格式互转、内容提取时使用。不适用于加密文件破解。适用于独立开发者、企业团队和自动化工作流场景。支持中文交互,无需复杂配置即开即用。输出结果可直接使用,减少二次加工成本。提供结构化输出和错误处理机制。