zippydevtools logozippydevtools

Search tools

Search tools

Tools

JSON

JSON Log Parser

Parse JSON logs and NDJSON line by line, unescape nested payloads, identify failed records, and copy normalized output locally.

Paste your dataJSON, JWT, URL, Base64 or CSV
Input
Paste or type
Try an example:
Output
Run an action
Paste your data. Zippy detects the context and shows compatible actions.
Processed locallyNo upload · no account · your data stays in this browser
About this tool

Extract JSON from one log line or parse NDJSON batches, unescape nested fields, and copy formatted JSON or normalized JSON Lines.

When to use

Use it when CloudWatch, Lambda, Docker, or API logs mix prefixes with escaped JSON, or when a file contains one JSON record per line.

Input

Paste up to 200,000 characters. Choose single or line-by-line mode, keep extraction on for prefixes, and enable nested parsing for escaped fields.

Output

Use formatted JSON for one object or a readable array and JSON Lines for one compact record per line. Partial failures expose only skipped line numbers.

How to use
  1. Paste one payload, NDJSON, or multiple log lines into the input field.
  2. Choose single or line-by-line mode and select the output format.
  3. Keep extraction enabled for prefixes and nested parsing for strings with internal JSON.
  4. Run the parser, inspect skipped line numbers, and copy only reviewed data.
Common use cases
  • Debug a CloudWatch error: Turn escaped Lambda payloads into readable JSON so requestId, statusCode, message, and stack context are easier to inspect.
  • Normalize NDJSON: Convert line-separated records into a readable array or keep JSON Lines for pipelines and .jsonl files.
  • Triage a batch with failures: Keep valid records and locate truncated or non-JSON lines without sending log content to analytics.
Troubleshooting and limitations
  • Truncated logs: When the line ends before closing quotes, braces, or brackets, the parser returns an error and the log must be captured completely.
  • Partial failures: In line-by-line mode, invalid entries are omitted from copied output and their source numbers appear in a separate warning.
  • Nested depth: Recursive traversal of JSON strings is capped at four levels to avoid indefinite parsing of artificial structures.
  • Sensitive data: Logs can contain tokens, cookies, emails, or customer payloads. Mask those fields before sharing output.
Related guides
Quick examples

Extract a CloudWatch payload

Input: 2026-06-25T10:00:00Z INFO {\"level\":\"error\",\"requestId\":\"abc\"}

Output: Formatted JSON with level and requestId, without the log prefix.

Parse multiple log lines

Input: Line-by-line mode: two valid JSON records and one truncated line

Output: An array with both valid records and a warning naming the skipped source line.

Normalize NDJSON

Input: Line-by-line mode; JSON Lines output

Output: One compact JSON object per line, ready to copy into a .jsonl file.

JSON Log Parser FAQ

How do I parse multiple JSON log lines?

Choose line-by-line mode and paste NDJSON or logs with one payload per line. Empty lines are ignored and every non-empty line is processed independently.

What is the difference between single and line-by-line mode?

Single payload preserves the original workflow for one object, array, or full log line. Line by line treats each record independently and collects valid results.

When should I use formatted JSON or JSON Lines?

Formatted JSON keeps one payload or creates a readable array for batches. JSON Lines writes one compact record per line for NDJSON files and pipelines.

What happens when one line contains invalid JSON?

In line-by-line mode, valid records remain in the output and a warning lists only skipped line numbers. If every line fails, the tool returns an error.

Does it parse escaped JSON inside message or payload fields?

Yes. With nested parsing enabled, strings containing valid objects or arrays are converted recursively, with traversal capped at four levels.

What is the parser input limit?

Each run accepts up to 200,000 characters. The limit keeps browser processing explicit and reviewable; split larger files before pasting them.

Are my logs sent to a server?

No. Parsing and copying run in the browser, and analytics receives only the tool identifier, never log content or failed lines.