QA Toolbox logoQA Toolbox

Multi JSON Formatter

Format many JSON blocks at once — even concatenated with no separator.

Paste one or many JSON values — concatenated ({…}{…}), space-, comma- or newline-separated (NDJSON). Each block is formatted independently.

About Multi JSON Formatter

The Multi JSON Formatter formats many JSON documents in one pass — even when they are concatenated back-to-back with no separator at all, which is exactly how they often appear in log files, Kafka dumps or NDJSON-ish output. It detects where one object ends and the next begins, then pretty-prints each block.

Instead of splitting a log dump by hand and formatting each piece separately, you paste the whole thing once. Each block is formatted with the indentation you choose, separated by a blank line or a single newline, and the tool tells you how many blocks it found — a useful sanity check in itself.

How to use

  1. Paste any number of JSON objects into "JSON input" — concatenated, one per line, or separated by whitespace.
  2. Choose the "Indentation" and the "Gap between blocks" you want in the output.
  3. Optionally pick "Payload labels" to prefix each block — Request → Response labels blocks alternately, or label every block as request or response.
  4. Click "Format all blocks". Every document is pretty-printed and the count of blocks found is shown.
  5. Copy the result, or use "Load sample" to see how concatenated input is split.

Frequently asked questions

How does it know where one JSON object ends and the next starts?

It scans the input with a lightweight parser that tracks brackets, braces and strings, so it can split concatenated documents reliably — no separator required between them.

What happens if one of the blocks is invalid?

You get an error telling you which part failed to parse, so you can fix that block without guessing which of the fifty objects in your paste was broken.

Is this the same as an NDJSON formatter?

It handles NDJSON (one JSON document per line) and more: blocks separated by spaces, newlines or nothing at all are all detected and formatted.

What are payload labels for?

When you paste a request and its response together — say, to attach to a Jira ticket — the "Request → Response" option prefixes the blocks alternately with "Request Payload" and "Response Payload". If every block is the same kind, label them all as request or all as response instead.

Related tools