<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Avi bhattacharjee</title>
    <description>The latest articles on DEV Community by Avi bhattacharjee (@avi_bhattacharjee_ba198ef).</description>
    <link>https://dev.to/avi_bhattacharjee_ba198ef</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4151498%2Fcb7d8b93-8ca2-49ea-b28d-2cfc5ce5e96f.png</url>
      <title>DEV Community: Avi bhattacharjee</title>
      <link>https://dev.to/avi_bhattacharjee_ba198ef</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/avi_bhattacharjee_ba198ef"/>
    <language>en</language>
    <item>
      <title>How to Use JSONEdit - Edit, Validate, Query and Convert JSON in Your Browser</title>
      <dc:creator>Avi bhattacharjee</dc:creator>
      <pubDate>Wed, 30 Sep 2026 06:16:02 +0000</pubDate>
      <link>https://dev.to/avi_bhattacharjee_ba198ef/how-to-use-jsonedit-edit-validate-query-and-convert-json-in-your-browser-f88</link>
      <guid>https://dev.to/avi_bhattacharjee_ba198ef/how-to-use-jsonedit-edit-validate-query-and-convert-json-in-your-browser-f88</guid>
      <description>&lt;p&gt;Every developer has a JSON routine. Copy a response out of DevTools, paste it somewhere to make it readable, squint at a diff, write a throwaway script to pull out one field, convert it to YAML for a config file... and repeat.&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;&lt;a href="https://jsonedit.com" rel="noopener noreferrer"&gt;JSONEdit&lt;/a&gt;&lt;/strong&gt; to put all of that in one place. It's free, needs no sign-up, and &lt;strong&gt;everything runs in your browser&lt;/strong&gt;, so your JSON never leaves your machine unless you explicitly click &lt;em&gt;Share&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  This post walks through the tools I use most and how to get the most out of them.
&lt;/h2&gt;

&lt;h2&gt;
  
  
  1. The JSON Editor: text and tree, side by side
&lt;/h2&gt;

&lt;p&gt;👉 &lt;a href="https://jsonedit.com/json-editor" rel="noopener noreferrer"&gt;jsonedit.com/json-editor&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is the heart of the site. The same document is shown twice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Text pane&lt;/strong&gt; (left): a full code editor (Ace) with syntax highlighting and inline error markers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tree pane&lt;/strong&gt; (right): the same data as a collapsible, editable tree.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The two stay in sync. Type in the text and the tree updates. Edit in the tree and the text is rewritten for you.&lt;/p&gt;

&lt;h3&gt;
  
  
  Editing in the tree
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Double-click&lt;/strong&gt; a key or value to edit it. &lt;strong&gt;Enter&lt;/strong&gt; saves, &lt;strong&gt;Esc&lt;/strong&gt; cancels.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;F2&lt;/strong&gt; renames the selected key, &lt;strong&gt;Delete&lt;/strong&gt; removes the node.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;+&lt;/strong&gt; adds a property (on objects) or an item (on arrays). You drop straight into editing the new entry.&lt;/li&gt;
&lt;li&gt;Arrow keys move between rows, and &lt;strong&gt;←/→&lt;/strong&gt; collapse or expand.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Values keep their type: edit &lt;code&gt;42&lt;/code&gt; and it stays a number, and &lt;code&gt;true&lt;/code&gt; stays a boolean.&lt;/p&gt;

&lt;p&gt;Because tree edits go through the text editor, &lt;strong&gt;Undo (Ctrl/Cmd + Z) works for tree edits too&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If the text has a syntax error, the tree keeps showing the last valid version and locks itself until you fix it, so you never lose your place.&lt;/p&gt;

&lt;h3&gt;
  
  
  The toolbar
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Button&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;✨ Format&lt;/td&gt;
&lt;td&gt;Pretty-prints with your preferred indentation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🗜️ Minify&lt;/td&gt;
&lt;td&gt;Compacts to a single line&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔤 Sort Keys&lt;/td&gt;
&lt;td&gt;Sorts object keys A → Z, recursively&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📂 Upload&lt;/td&gt;
&lt;td&gt;Loads a &lt;code&gt;.json&lt;/code&gt; file from disk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🗑️ Clear&lt;/td&gt;
&lt;td&gt;Resets the editor&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Sort keys on two payloads &lt;em&gt;before&lt;/em&gt; comparing them. It removes key-order noise.&lt;/p&gt;

&lt;h3&gt;
  
  
  Load JSON straight from a URL
&lt;/h3&gt;

&lt;p&gt;You can open any public JSON endpoint in the editor by passing it as a query parameter:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://jsonedit.com/json-editor?url=https://jsonplaceholder.typicode.com/users
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Handy for bookmarking an API you inspect often. (The endpoint needs to allow CORS, since the fetch happens in your browser.)&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Formatter &amp;amp; JSON Lint: fix broken JSON fast
&lt;/h2&gt;

&lt;p&gt;👉 &lt;a href="https://jsonedit.com/format" rel="noopener noreferrer"&gt;jsonedit.com/format&lt;/a&gt; · &lt;a href="https://jsonedit.com/json-lint" rel="noopener noreferrer"&gt;jsonedit.com/json-lint&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Paste messy JSON and you get a live &lt;strong&gt;Valid / Invalid&lt;/strong&gt; badge. If the JSON is invalid, you see the parser's exact error message, and the bad line is marked in the gutter.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ctrl + Enter&lt;/strong&gt; formats valid JSON, or jumps to the first error.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Import&lt;/strong&gt; loads JSON from a file &lt;em&gt;or a URL&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The usual suspects it will catch:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json-doc"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;'Ana'&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="c1"&gt;// ❌ keys and strings need double quotes&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,]&lt;/span&gt;&lt;span class="w"&gt;             &lt;/span&gt;&lt;span class="c1"&gt;// ❌ trailing commas aren't allowed&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="c1"&gt;// comments         // ❌ JSON has no comments&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  3. Compare two JSON documents
&lt;/h2&gt;

&lt;p&gt;👉 &lt;a href="https://jsonedit.com/compare-two-json" rel="noopener noreferrer"&gt;jsonedit.com/compare-two-json&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a &lt;strong&gt;structural&lt;/strong&gt; diff, not a text diff. Both sides are parsed first, so whitespace, indentation and &lt;strong&gt;key order never show up as differences&lt;/strong&gt;. Only real changes to keys, values and types do.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;left&lt;/span&gt;&lt;span class="w"&gt;                               &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;right&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;                                     &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Ana"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;                        &lt;/span&gt;&lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;31&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"age"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;                            &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Ana"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"email"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ana@example.com"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;           &lt;/span&gt;&lt;span class="nl"&gt;"roles"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"admin"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"editor"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"roles"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"admin"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;                  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Result: three differences.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;age&lt;/code&gt;: &lt;strong&gt;Changed&lt;/strong&gt; (30 → 31)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;email&lt;/code&gt;: &lt;strong&gt;Removed&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;roles[1]&lt;/code&gt;: &lt;strong&gt;Added&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;name&lt;/code&gt; is identical even though it moved. Changes are highlighted in both editors (amber = changed, red = removed, green = added). &lt;strong&gt;Previous / Next&lt;/strong&gt; steps through them, and a filterable table lists every change by path.&lt;/p&gt;

&lt;p&gt;Large documents (over ~50 KB combined) are diffed on a background thread, so the page stays responsive.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Query JSON with JSONPath or JMESPath
&lt;/h2&gt;

&lt;h3&gt;
  
  
  JSONPath Tester
&lt;/h3&gt;

&lt;p&gt;👉 &lt;a href="https://jsonedit.com/json-path" rel="noopener noreferrer"&gt;jsonedit.com/json-path&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Results update &lt;strong&gt;as you type&lt;/strong&gt;. A few expressions worth knowing:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Expression&lt;/th&gt;
&lt;th&gt;Selects&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;$.store.book[*].author&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;All authors&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;$..price&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Every &lt;code&gt;price&lt;/code&gt;, at any depth&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;$.store.book[-1:]&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The last book&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;$.store.book[?(@.price &amp;lt; 10)].title&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Titles of books under 10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;$.store.book[?(@.isbn)].title&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Books that have an &lt;code&gt;isbn&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;It uses &lt;a href="https://github.com/JSONPath-Plus/JSONPath" rel="noopener noreferrer"&gt;JSONPath-Plus&lt;/a&gt;, so you also get extras like &lt;code&gt;~&lt;/code&gt; for property names.&lt;/p&gt;

&lt;h3&gt;
  
  
  JSON Search (JMESPath)
&lt;/h3&gt;

&lt;p&gt;👉 &lt;a href="https://jsonedit.com/search-json-documents" rel="noopener noreferrer"&gt;jsonedit.com/search-json-documents&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;JMESPath (the language the AWS CLI's &lt;code&gt;--query&lt;/code&gt; uses) can &lt;em&gt;reshape&lt;/em&gt; results as well as select them:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;people[?age &amp;gt; `30`].name
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Remember: numbers go in backticks, strings in single quotes.&lt;/p&gt;

&lt;p&gt;Not sure which one to use? JSONPath is great for &lt;em&gt;finding&lt;/em&gt; values; JMESPath is better when you want to &lt;em&gt;transform&lt;/em&gt; them.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Validate against a JSON Schema
&lt;/h2&gt;

&lt;p&gt;👉 &lt;a href="https://jsonedit.com/json-schema-validator" rel="noopener noreferrer"&gt;jsonedit.com/json-schema-validator&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Paste data on the left and a schema on the right, then click &lt;strong&gt;Validate&lt;/strong&gt;. Every error is listed with a JSON Pointer to the failing value:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(root)    must have required property 'email'
/age      must be &amp;gt;= 0
/roles/1  must be equal to one of the allowed values
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Supports &lt;strong&gt;draft-07, 2019-09 and 2020-12&lt;/strong&gt;, auto-detected from &lt;code&gt;$schema&lt;/code&gt; or picked from a menu.&lt;/li&gt;
&lt;li&gt;Checks common &lt;code&gt;format&lt;/code&gt;s such as &lt;code&gt;email&lt;/code&gt;, &lt;code&gt;date-time&lt;/code&gt;, &lt;code&gt;uri&lt;/code&gt;, &lt;code&gt;uuid&lt;/code&gt; and &lt;code&gt;ipv4&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  6. Explore big documents: Tree, Grid and Inspector
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://jsonedit.com/json-view-as-tree" rel="noopener noreferrer"&gt;Tree Viewer&lt;/a&gt;&lt;/strong&gt;: a read-only, collapsible outline with search and &lt;strong&gt;Copy Path&lt;/strong&gt;. Great for finding the path you'll then use in a JSONPath query.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://jsonedit.com/json-grid" rel="noopener noreferrer"&gt;Grid Viewer&lt;/a&gt;&lt;/strong&gt;: turns an array of objects into a sortable, searchable table. You can hide columns, open a row for detail and export to JSON or CSV.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://jsonedit.com/json-inspector" rel="noopener noreferrer"&gt;JSON Inspector&lt;/a&gt;&lt;/strong&gt;: one workspace with tabs for Tree, Grid, JSONPath, Transform and Validate. Click any node to see its path, type, depth and size. The Validate tab adds &lt;strong&gt;lint rules&lt;/strong&gt; (duplicate keys, precision loss) and a &lt;strong&gt;type check&lt;/strong&gt; that finds fields whose type varies across array items. That's the kind of bug that slips past a syntax check.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  7. Convert between formats
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://jsonedit.com/json-to-yaml" rel="noopener noreferrer"&gt;JSON → YAML&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Quotes values like &lt;code&gt;"yes"&lt;/code&gt; or dates only when YAML would otherwise change their type. Ideal for Kubernetes, GitHub Actions or Compose files.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://jsonedit.com/yaml-to-json" rel="noopener noreferrer"&gt;YAML → JSON&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Comments are dropped and anchors expanded. Errors show line and column.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://jsonedit.com/json-to-csv" rel="noopener noreferrer"&gt;JSON → CSV&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Best with a flat array of objects. Nested values become JSON strings in their cell.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://jsonedit.com/xml-to-json" rel="noopener noreferrer"&gt;XML → JSON&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Attributes become &lt;code&gt;@&lt;/code&gt;-prefixed keys.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://jsonedit.com/json-patch" rel="noopener noreferrer"&gt;JSON Patch&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Apply an RFC 6902 patch (&lt;code&gt;add&lt;/code&gt;, &lt;code&gt;remove&lt;/code&gt;, &lt;code&gt;replace&lt;/code&gt;, &lt;code&gt;move&lt;/code&gt;, &lt;code&gt;copy&lt;/code&gt;, &lt;code&gt;test&lt;/code&gt;) and see the result.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;There's also a &lt;a href="https://jsonedit.com/yaml-validator" rel="noopener noreferrer"&gt;YAML Validator&lt;/a&gt;, a &lt;a href="https://jsonedit.com/base64-encoder-decoder" rel="noopener noreferrer"&gt;Base64 encoder/decoder&lt;/a&gt; and a &lt;a href="https://jsonedit.com/jwt-decoder" rel="noopener noreferrer"&gt;JWT decoder&lt;/a&gt;. The JWT decoder shows &lt;code&gt;iat&lt;/code&gt; / &lt;code&gt;nbf&lt;/code&gt; / &lt;code&gt;exp&lt;/code&gt; as readable dates and warns you about &lt;code&gt;alg: "none"&lt;/code&gt; tokens. It decodes the token but does &lt;strong&gt;not&lt;/strong&gt; verify the signature.&lt;/p&gt;




&lt;h2&gt;
  
  
  8. Share safely: anonymize, mock, then share
&lt;/h2&gt;

&lt;p&gt;Before you paste production data into a bug report:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://jsonedit.com/anonymizer" rel="noopener noreferrer"&gt;PII Anonymizer&lt;/a&gt;&lt;/strong&gt; masks emails, phone numbers and card numbers but keeps the structure intact, so the JSON still works as a repro. It's pattern-based, so skim free-text fields before sharing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="https://jsonedit.com/mock-data-generator" rel="noopener noreferrer"&gt;Mock Data Generator&lt;/a&gt;&lt;/strong&gt; builds up to 1,000 fake records from a field list (UUID, email, date, ...). Names, emails and cities within a record belong to the same fictional person, emails use &lt;code&gt;example.com&lt;/code&gt;, and phone numbers use the 555-01xx range.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When you do want to send JSON to someone, the &lt;strong&gt;Share&lt;/strong&gt; button in the Formatter creates a &lt;strong&gt;read-only link&lt;/strong&gt;. The other person doesn't need an account, and the link expires after &lt;strong&gt;90 days&lt;/strong&gt;. This is the only feature that sends data anywhere, and only when you click it.&lt;/p&gt;




&lt;h2&gt;
  
  
  9. Make it yours: settings and shortcuts
&lt;/h2&gt;

&lt;p&gt;On the &lt;a href="https://jsonedit.com/settings" rel="noopener noreferrer"&gt;Settings&lt;/a&gt; page you can set:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;indent size, or indent with tabs&lt;/li&gt;
&lt;li&gt;editor font and font size&lt;/li&gt;
&lt;li&gt;word wrap, line numbers and fold markers&lt;/li&gt;
&lt;li&gt;dark or light mode&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Settings are saved in your browser and apply to every tool, even across open tabs.&lt;/p&gt;

&lt;p&gt;Shortcuts worth memorizing:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Shortcut&lt;/th&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Ctrl/Cmd + S&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Save the current editor content to your browser&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Ctrl + Enter&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Format / run (Formatter, Lint, Tree, Mock Data)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Ctrl/Cmd + Z&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Undo, including tree edits in the JSON Editor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;F2 / Delete&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Rename / remove a node in the tree&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Wrapping up
&lt;/h2&gt;

&lt;p&gt;The whole toolkit lives at &lt;strong&gt;&lt;a href="https://jsonedit.com/json-tools" rel="noopener noreferrer"&gt;jsonedit.com/json-tools&lt;/a&gt;&lt;/strong&gt;. If you're newer to JSON, the &lt;a href="https://jsonedit.com/guide/what-is-json" rel="noopener noreferrer"&gt;guides&lt;/a&gt; cover the basics through to the &lt;a href="https://jsonedit.com/guide/jsonpath-cheat-sheet" rel="noopener noreferrer"&gt;JSONPath cheat sheet&lt;/a&gt; and &lt;a href="https://jsonedit.com/guide/common-json-errors" rel="noopener noreferrer"&gt;common JSON errors&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Found a bug or want a feature? Open an issue on &lt;a href="https://github.com/BabaThoughts/JSONEDIT.com/issues" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. I read them all.&lt;/p&gt;

&lt;p&gt;What's the JSON chore you do most often? Tell me in the comments. It might be the next tool I build. 👇&lt;/p&gt;

</description>
      <category>json</category>
      <category>tools</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
