DEV Community

Cover image for Stop Reading Raw JSON: A Better Workflow for Debugging API Responses
FastMinify
FastMinify

Posted on

Stop Reading Raw JSON: A Better Workflow for Debugging API Responses

If you work with APIs every day, you've probably had this experience.

You copy a JSON response from your browser's DevTools...

...and you're greeted by a single line containing thousands of characters.

At that point, answering simple questions becomes surprisingly difficult.

  • Did the API actually change?
  • Which property is causing the bug?
  • Is the JSON even valid?

Instead of reading raw JSON by eye, I follow the same four-step workflow every time. It's simple, fast, and works with any API.


Step 1 — Validate First

Before formatting or comparing anything, make sure the JSON is valid.

It's surprisingly common to waste time because of:

  • A missing comma
  • A trailing comma
  • An invalid escape sequence
  • A truncated API response

If the document doesn't parse correctly, everything that comes afterwards becomes more difficult.

Validation should always be the first step.


Step 2 — Format for Humans

Once the JSON is valid, make it readable.

Formatting doesn't change your data.

It only changes whitespace and indentation.

Instead of trying to understand this:

{"user":{"id":42,"roles":["admin","editor"],"preferences":{"theme":"dark","notifications":true}}}
Enter fullscreen mode Exit fullscreen mode

You immediately get something much easier to inspect:

{
  "user": {
    "id": 42,
    "roles": [
      "admin",
      "editor"
    ],
    "preferences": {
      "theme": "dark",
      "notifications": true
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Nothing changes except readability.


Step 3 — Explore Instead of Scrolling

Formatting is only the beginning.

Once a payload reaches several thousand lines, scrolling becomes inefficient.

A tree view makes navigation much easier because you can:

  • Collapse entire branches
  • Expand only the section you need
  • Search for keys
  • Search for string values
  • Navigate deeply nested objects in seconds

For large API responses, this is far more productive than reading the document line by line.


Step 4 — Compare Structurally

Imagine yesterday's deployment worked perfectly.

Today's deployment broke something.

You have two JSON responses.

Trying to compare them manually quickly becomes frustrating.

A structural JSON diff immediately highlights:

  • Modified values
  • Added properties
  • Removed properties
  • Type changes

Instead of searching through hundreds of lines, you can immediately focus on what actually changed.


A Typical Debugging Session

Let's say a customer suddenly loses access to a feature after deployment.

My workflow usually looks like this:

  1. Validate both responses.
  2. Format them for readability.
  3. Compare them structurally.
  4. Explore the modified branch in a tree viewer.

Most of the time, the issue becomes obvious within a few minutes.

For example, you might discover that:

"subscription": {
  "status": "active"
}
Enter fullscreen mode Exit fullscreen mode

has become:

"subscription": {
  "status": "expired"
}
Enter fullscreen mode Exit fullscreen mode

Or maybe the entire object has disappeared.

Finding those differences manually would have taken significantly longer.


The Workflow I Always Follow

Whenever I'm debugging JSON, I keep exactly the same sequence:

Validate
    ↓
Format
    ↓
Explore
    ↓
Compare
    ↓
Minify (before production)
Enter fullscreen mode Exit fullscreen mode

Following the same workflow every time removes a lot of unnecessary friction and makes debugging much faster.


Final Thoughts

JSON isn't difficult.

Large JSON documents are.

Using a consistent workflow for validation, formatting, exploration and comparison makes debugging API responses significantly easier, whether you're working on REST APIs, configuration files or exported application data.

This article only covers the workflow.

If you'd like a deeper guide covering each tool, best practices, limitations and practical examples, I've written a complete article on FastMinify.

👉 https://fastminify.com/en/blog/json-formatter-diff-tree-viewer-guide

How do you usually inspect large JSON payloads?

Do you rely on your IDE, browser DevTools, jq, browser extensions or another workflow?

I'd love to hear your approach in the comments.

Top comments (0)