JSTools Space3 downloadsRender JSON code blocks as an interactive inspector with Tree, Raw and JSONPath query views. Lossless number handling, search, and copy actions. Fully local, no network.
An Obsidian plugin that renders JSON code blocks as an interactive inspector — a Tree view, a Raw view, and a JSONPath Query view — directly inside your notes. Inspired by the JSTools JSON Inspector browser extension for Chrome.
Everything runs locally: no network requests, no telemetry, no accounts,
no eval. Numbers are parsed losslessly, so big integers and
high-precision decimals are never altered.
Created for JSON Formatter

Add a fenced code block with the language json-inspector:
```json-inspector
{
"user": {
"id": 42,
"name": "Anton",
"roles": ["admin", "developer"]
}
}
```
When you leave edit mode (Reading view, or Live Preview with the cursor outside the block) the block becomes an interactive viewer.
Optionally, enable **Render standard ```json blocks as JSON Inspector** in
settings to also take over plain json blocks. This is off by default to
avoid conflicting with other plugins.
Press Ctrl/Cmd+F inside an inspector to search keys and values: match count, Next/Previous, automatic expansion of the matched node, highlighting, and Escape to close.
Each node has an actions button (⋯) with: Copy value, Copy key, Copy object, Copy JSONPath, Copy JSON Pointer, Expand subtree, Collapse subtree.
The bundled engine is dependency-free and safe (no eval/Function). It
supports $, member access (dot and bracket), array indices (including
negative), wildcards (* / [*]), recursive descent (..), unions ([0,2],
['a','b']), slices ([start:end:step]), and filters ([?(@.price < 10)])
with comparisons, &&/||, grouping and existence tests.
eval and no unsafe innerHTML; the DOM is built with safe APIs.localStorage. Only your preferences
and (optionally) recent JSONPath query strings are persisted.ARIA labels on all buttons, proper tab semantics for the view tabs, full keyboard navigation of the tree, visible focus states, and theme-driven contrast.
main.js,
manifest.json, and styles.css.<vault>/.obsidian/plugins/json-inspector/.main.js, manifest.json, and styles.css into that folder.npm install
npm run build # type-checks, then produces main.js (production)
npm test # run the unit tests
npm run lint # lint the source
npm run dev # watch build for development
The production build (npm run build) emits main.js. Together with
manifest.json and styles.css (already in the repo root), these are the three
files Obsidian needs.
manifest.json has a unique id, a clear name/description, and a
correct minAppVersion, and that versions.json maps your plugin version to
the minimum app version.manifest.json (e.g. 1.0.0, no v prefix), and attach main.js,
manifest.json, and styles.css as individual release assets.obsidianmd/obsidian-releases
and add an entry for your plugin to community-plugins.json.See the official guide: https://community.obsidian.md/plugins/json-inspector.
lossless-json;
the native JSON.parse is intentionally not used for note content.src/services and src/utils and is free of Obsidian/DOM imports.src/components use Obsidian's safe DOM helpers and clean up
their listeners through the MarkdownRenderChild lifecycle.