Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>JSON & XML ToolkitNew to Visual Studio Code? Get it now.
JSON & XML Toolkit

JSON & XML Toolkit

Berke Karacaoglan

|
6 installs
| (1) | Free
A complete workbench for JSON & XML: prettify, minify, escape, repair, sort, flatten, query (JSONPath/XPath), analyze, and convert between JSON, XML, YAML, CSV, TypeScript and Go — all from the command palette or an interactive panel.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

JSON & XML Toolkit

JSON & XML Toolkit

A complete data workbench for JSON and XML inside VS Code. Most extensions do one thing — format, or flatten, or convert. This one bundles the whole toolbox a developer or data analyst reaches for every day, plus an interactive Workbench panel you won't find elsewhere.

Why this one?

  • 100% offline & private — every operation runs locally in memory. The extension makes no network requests and sends no telemetry; your data never leaves your machine. See Privacy.
  • One extension, the full toolkit — 35+ operations for JSON and XML, instead of installing five single-purpose extensions.
  • Interactive Workbench (Ctrl/Cmd+Alt+J) — a two-pane scratchpad with live format auto-detection. Paste, transform, query, and pipe the output straight back into your editor or a new document. No round-tripping through a website.
  • Structure tree — an expandable outline of the active JSON document in the Explorer; click any node to jump to it. Lazy, so it stays fast on big files.
  • Schema validation & semantic diff — validate against any JSON Schema with inline error markers, and diff two documents after normalizing formatting and key order so only real changes show.
  • Works on a selection or the whole file — every command transforms the selected text, or the entire document if nothing is selected.
  • Lenient by default — comments, trailing commas, single quotes and unquoted keys are accepted (JSON5) so messy real-world data just works.
  • Live status bar — validity, size, depth and key/element counts for the active JSON/XML file at a glance.

Features

JSON

Command What it does
Prettify / Minify Format with configurable indent, or compact to one line
Sort Keys Recursively sort object keys (asc/desc)
Repair / Fix Parse JSON5-style input and emit clean, valid JSON
Escape / Unescape String Convert to/from a JSON string literal
Stringify / Parse Wrap a document as a string value, or unwrap one
Flatten / Unflatten Convert between nested and dot/bracket-notation form
Remove Null & Empty Strip null, "", [], {} recursively
Escape / Decode Unicode Convert non-ASCII to \uXXXX and back
Query (JSONPath) Run a JSONPath expression and collect matches
Validate against Schema Check the document against a JSON Schema, with inline error markers
Analyze Depth, key counts, type breakdown, byte size

XML

Command What it does
Prettify / Minify Format with configurable indent, or compact to one line
Escape / Unescape Convert to/from XML entities (<, &, …)
Query (XPath) Run an XPath expression and collect matching nodes
Analyze Elements, attributes, depth, and unique-tag counts

Convert

Command What it does
JSON → YAML / YAML → JSON Round-trip between JSON and YAML
JSON → XML / XML → JSON Round-trip between JSON and XML
JSON → CSV / CSV → JSON Tabular round-trip with proper quoting and type coercion
JSON → TypeScript Generate interface definitions from a sample
JSON → Go struct Generate Go structs with json: tags
JSON → Protobuf Generate proto3 message definitions
JSON → Python dataclass Generate @dataclass classes with type hints

Inspect

Command What it does
Diff (Semantic) Compare the active document with another file; both sides are normalized (sorted keys, consistent formatting) first, so only meaningful differences show
JSON Structure tree An expandable outline in the Explorer for JSON files; click a node to reveal it in the editor (lazy, so it stays fast on large files)
Status bar Live validity, size, depth and key/element counts for the active JSON/XML file

Usage

  • Command Palette (Ctrl/Cmd+Shift+P) → type JSON & XML Toolkit to see every command.
  • Right-click in a JSON/XML/YAML file → JSON & XML Toolkit submenu for the common ones.
  • Workbench panel → Ctrl/Cmd+Alt+J, or right-click → Send Selection to Toolkit Workbench.

In-place transforms (prettify, minify, sort, escape, repair…) rewrite the selection. Conversions and queries open the result in a fresh editor so your source stays intact.

Settings

Setting Default Description
jsonXmlToolkit.indent 2 Indentation for prettified output (2, 4, or tab).
jsonXmlToolkit.sortDirection asc Direction for Sort Keys.
jsonXmlToolkit.statusBar.enabled true Show the live status-bar info item.
jsonXmlToolkit.repair.useJson5 true Accept JSON5 syntax when repairing.

Privacy

Your data never leaves your machine. Every transformation, query, conversion and validation runs entirely in-process, on your local device.

  • 🔌 No network access — the extension contains no fetch, XMLHttpRequest, WebSocket, or http/https/net/dns calls. It works fully offline (airplane mode, air-gapped machines).
  • 🔒 No telemetry, no tracking — nothing about your documents or usage is collected or sent anywhere.
  • 🧱 Locked-down panel — the Workbench webview runs under a strict Content-Security-Policy (default-src 'none') that blocks any outbound connection at the browser level.
  • 📄 Schema validation stays local — schemas are read from your own files and compiled synchronously; remote $refs are never fetched (validation fails closed instead of reaching out).

The only addresses you may spot inside the bundle are identifier strings (e.g. JSON Schema $ids and XML namespace URIs) that are never contacted.

Note: VS Code's own telemetry is separate and controlled by your telemetry.telemetryLevel setting — this extension adds nothing to it.

Building from source

npm install
npm run build      # bundles the extension to dist/
npm test           # runs the core unit tests
npm run package    # produces a .vsix

Publishing: set publisher in package.json to your Marketplace publisher id, then vsce publish.

License

MIT © contributors

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft