← All workbenches

JSON TOOLS

Format JSON and run jq queries on your Mac.

Open or paste JSON, pretty-print and validate it, and filter it with local jq — no upload needed. Field and function suggestions help you build queries. Your work stays on your Mac.

  • Format and minify
  • Validate and repair
  • Run jq
Download for Mac

Free download. Requires macOS 14 or later.

WHAT IT HELPS WITH

From a dense response to the value you need.

Make it readable

Pretty-print a compact response, choose the indentation, sort keys when useful, or minify it again.

Find a smaller result

Parse and filter a JSON array with a jq query such as .services[] | select(.status == "degraded"), then copy or save the result.

Fix common mistakes

See where invalid JSON needs attention and apply a supported repair only when you choose to. JSON validation and error reporting work offline.

TRY IT WITH JQ

Find the service that needs attention.

Use this synthetic service response to try field suggestions and filter a JSON array with jq. Open JSON Tools in Dev Workbench, paste the sample into Input, and choose Format to make it readable.

When suggestions are open, Tab or Return accepts the selected entry. When they are closed, Return inserts a new query line; click Run to execute it. Formatting, suggestions, and jq processing stay on your Mac.

New to jq syntax? Read our interactive jq tutorial and playground to practice filters directly in your browser.

Sample JSON

The response contains three services. Search Index is the only one with a degraded status.

JSON
{
  "environment": "production",
  "region": "eu-central-1",
  "services": [
    {
      "name": "API Gateway",
      "status": "healthy",
      "latencyMs": 42,
      "requestsPerMinute": 18420
    },
    {
      "name": "Event Processor",
      "status": "healthy",
      "latencyMs": 87,
      "requestsPerMinute": 7310
    },
    {
      "name": "Search Index",
      "status": "degraded",
      "latencyMs": 246,
      "requestsPerMinute": 5120
    }
  ]
}

1. List the service names

In the jq query area, type .services[].. Choose name from the field suggestions and accept it with Tab or Return.

jq
.services[].name

Click Run. Expected result:

"API Gateway"
"Event Processor"
"Search Index"

These are three separate JSON string results. Use [.services[].name] if you want one array.

2. Find the degraded service

Start with .services[] | sel and choose select from the function suggestions. Complete the query below, then click Run.

jq
.services[] | select(.status == "degraded")

Expected result:

{
  "name": "Search Index",
  "status": "degraded",
  "latencyMs": 246,
  "requestsPerMinute": 5120
}

select keeps the service whose status matches degraded. Use Copy Plain or Save JSON to keep the result.

LARGER JSON

Large files switch to manual actions.

For input above 1 MB, live formatting pauses so typing stays responsive. Use Format or Minify when you are ready.

For input above 5 MB, Live jq pauses. Use Run when you want the result.

Paste, edit, or open files up to 10 MB in Free. Pro can open a larger local file, up to 1 GB, in a read-only viewer. Move between pages, jump to a position, search the whole file, and run jq after the file is checked. Large-file results are limited to 100 MB.

1 MBLive formatting pauses
5 MBLive jq pauses
10 MBLargest editable input in Free and Pro
1 GBLargest file Pro can open read-only

ACCESS

Work with everyday JSON in Free. Open larger files with Pro.

FREE — INCLUDED

Format, repair, and query files up to 10 MB.

  • Open a file or edit pasted JSON
  • Use live jq through 5 MB, or run a query yourself
  • Get jq suggestions, then copy or save the result

PRO — ADDS

Open and search files up to 1 GB.

  • Read a large file page by page without loading it into the editor
  • Jump to a position or find text across the whole file
  • After validation, use suggestions and run jq on that file

LOCAL BY DEFAULT

Your JSON stays on your Mac.

Formatting, validation, repair, and jq run locally. JSON Tools does not send your input to a KeLoc server. Saving writes only to the file location you choose.

Read the Dev Workbench privacy policy