DiffForge
Upload .json .log .txt
Input
Output
Formatted JSON
JSONPrivateAnalyzer

Format JSON Online - Clean, Inspect, and Analyze

DiffForge formats messy JSON, escaped JSON strings, and CloudWatch-style log lines directly in your browser. Beautify or minify data, inspect nested objects with a collapsible tree, keep line numbers visible, and surface useful structure such as links, domains, keys, arrays, depth, and primitive counts without uploading anything.

Clean JSON from Logs and Escaped Strings

Paste raw JSON, JSON with comments, escaped JSON strings, or log lines that contain embedded payloads. DiffForge extracts the JSON candidate, decodes nested JSON strings when enabled, and returns readable formatted output.

JSON input
logINFO request completed { "payload": "{...}" }
parseExtract JSON object from mixed text
decodeDecode nested JSON string values
formatPretty print or minify output
Browser-only parser

Collapsible JSON Tree Viewer

Switch from raw formatted text to an expandable tree view for large payloads. Objects and arrays can be collapsed so API responses, event payloads, and nested configuration files are easier to scan.

Tree view
1▾ { Object(4) }
2 "level": "info",
3 ▾ "payload": { Object(3) }
4 ▸ "user": { Object(2) },
5 ▸ "flags": [ Array(2) ],
6 "url": "https://api.example.com"
Collapse nested data instantly

JSON Analysis with Links and Domains

After formatting, DiffForge summarizes the payload: total values, max depth, key count, objects, arrays, strings, numbers, booleans, nulls, and detected links. Full URLs stay visible and clickable for quick API endpoint inspection.

Analysis
Links3 found · 2 unique
Domainsapi.example.com · docs.example.com
Keys24 keys · 8 objects
Depthmax depth 5
https://api.example.com/v1/health

Line Numbers, Copy, and Download

Use line-numbered input and output panels for debugging parse errors or sharing exact references. Copy formatted JSON to the clipboard or download a .formatted.json file for handoff.

Input
1 {"ok":true,
2 "count":128,
3 "items":[...]}
Output
1 {
2 "ok": true,
3 "count": 128