Logo

Complete Tools

Search tools
Ctrl K
Favoritekofi

JSON Formatter

Format, minify, validate and beautify JSON online

Format, minify, validate, escape and unescape JSON data. Support multiple indentation options and instant validation.

Categories
JSON Tools, Formatter Tools

Input JSON

Indentation:

Output

What is JSON Formatter?

JSON Formatter is a free online tool for formatting, minifying, and validating JSON data. Whether you need to beautify messy JSON, compress it to save space, or validate its syntax, this tool provides all the functionality you need in one place.

Perfect for developers working with APIs, configuration files, or any JSON data, this tool makes JSON manipulation quick and easy with instant feedback and multiple formatting options.

What is JSON?

JSON (JavaScript Object Notation) is a lightweight data-interchange format that is easy for humans to read and write and easy for machines to parse and generate. It is completely language-independent but uses conventions familiar to programmers of C-family languages.

JSON Structure

JSON is built on two structures:

  • Objects: A collection of name/value pairs {"key": "value"}
  • Arrays: An ordered list of values [1, 2, 3]

Example:

{
  "name": "John Doe",
  "age": 30,
  "city": "New York",
  "hobbies": ["reading", "coding", "gaming"]
}

How to use JSON Formatter?

Format JSON

To beautify and format your JSON:

  1. Paste your JSON into the input area
  2. Select indentation (2 spaces, 4 spaces, 8 spaces, or Tab)
  3. Click "Format" button
  4. The formatted JSON appears in the output area
  5. Use Copy to copy the result

Minify JSON

To compress JSON to a single line:

  1. Paste your JSON into the input area
  2. Click "Minify" button
  3. The compressed JSON appears in the output area

Validate JSON

To check if your JSON is valid:

  1. Paste your JSON into the input area
  2. Click "Validate" button
  3. You'll see a success message if valid, or error details if invalid

Escape/Unescape JSON

To escape JSON for embedding in code:

  1. Paste your JSON into the input area
  2. Click "Escape" to escape special characters
  3. Click "Unescape" to reverse the process

Features

  • Format/Beautify - Pretty-print JSON with custom indentation
  • Minify/Compress - Remove whitespace to reduce size
  • Validate - Check JSON syntax and get error messages
  • Escape/Unescape - Prepare JSON for embedding in code
  • Multiple indentation options - 2, 4, 8 spaces or tabs
  • Syntax validation - Real-time error detection
  • Instant feedback - Toast notifications for all operations
  • Copy functionality - Easy clipboard copy
  • Monospace font - Clear, readable JSON display

Use Cases

1. API Response Formatting

Format API responses for better readability:

Before (minified):

{"userId":1,"id":1,"title":"Sample","completed":false}

After (formatted):

{
  "userId": 1,
  "id": 1,
  "title": "Sample",
  "completed": false
}

2. Configuration Files

Format configuration files for clarity:

{
  "server": {
    "port": 3000,
    "host": "localhost"
  },
  "database": {
    "host": "db.example.com",
    "port": 5432,
    "name": "myapp"
  }
}

3. Debugging

Validate and format JSON during debugging:

{
  "error": {
    "code": 404,
    "message": "Resource not found",
    "details": {
      "path": "/api/users/123",
      "timestamp": "2025-12-10T14:00:00Z"
    }
  }
}

4. Data Storage

Minify JSON before storing to save space:

Formatted (readable):

{
  "users": [
    {"id": 1, "name": "John"},
    {"id": 2, "name": "Jane"}
  ]
}

Minified (storage):

{"users":[{"id":1,"name":"John"},{"id":2,"name":"Jane"}]}

5. Code Embedding

Escape JSON for embedding in JavaScript:

Original:

{"message":"Hello \"World\""}

Escaped:

"{\"message\":\"Hello \\\"World\\\"\"}"

JSON Validation

Valid JSON Examples

Object:

{
  "name": "John",
  "age": 30
}

Array:

[1, 2, 3, 4, 5]

Nested:

{
  "user": {
    "name": "John",
    "addresses": [
      {"city": "New York"},
      {"city": "Boston"}
    ]
  }
}

Common JSON Errors

Missing quotes on keys:

{name: "John"}  // ❌ Invalid
{"name": "John"} // ✅ Valid

Trailing comma:

{
  "name": "John",
  "age": 30,  // ❌ Invalid (trailing comma)
}

Single quotes:

{'name': 'John'}  // ❌ Invalid (use double quotes)
{"name": "John"}  // ✅ Valid

Unescaped quotes:

{"message": "Hello "World""}  // ❌ Invalid
{"message": "Hello \"World\""} // ✅ Valid

Indentation Options

{
  "name": "John",
  "age": 30
}

4 Spaces

{
    "name": "John",
    "age": 30
}

8 Spaces

{
        "name": "John",
        "age": 30
}

Tab

{
	"name": "John",
	"age": 30
}

JSON Data Types

JSON supports the following data types:

TypeExampleDescription
String"Hello"Text in double quotes
Number42, 3.14Integer or decimal
Booleantrue, falseTrue or false
NullnullEmpty value
Object{}Key-value pairs
Array[]Ordered list

Tips for Best Results

  1. Choose appropriate indentation: 2 spaces is the most common and recommended

  2. Validate before formatting: The formatter will also validate, but explicit validation gives clearer error messages

  3. Use minify for production: Reduce file size by removing unnecessary whitespace

  4. Escape for code embedding: Always escape JSON when including it in JavaScript strings

  5. Check for trailing commas: JSON doesn't allow trailing commas, unlike JavaScript

  6. Use proper quotes: JSON requires double quotes, not single quotes

Common JSON Operations

Converting to JSON

JavaScript Object to JSON:

const obj = { name: "John", age: 30 };
const json = JSON.stringify(obj, null, 2);

JSON to JavaScript Object:

const json = '{"name":"John","age":30}';
const obj = JSON.parse(json);

Reading JSON Files

Node.js:

const fs = require('fs');
const data = JSON.parse(fs.readFileSync('data.json', 'utf8'));

Browser (Fetch API):

fetch('data.json')
  .then(response => response.json())
  .then(data => console.log(data));

JSON vs Other Formats

JSON vs XML

JSON:

{
  "user": {
    "name": "John",
    "age": 30
  }
}

XML:

<user>
  <name>John</name>
  <age>30</age>
</user>

Advantages of JSON:

  • More concise
  • Easier to parse
  • Native JavaScript support
  • Smaller file size

JSON vs YAML

JSON:

{
  "server": {
    "port": 3000,
    "host": "localhost"
  }
}

YAML:

server:
  port: 3000
  host: localhost

When to use JSON:

  • APIs and web services
  • JavaScript applications
  • When strict syntax is needed
  • Machine-to-machine communication

When to use YAML:

  • Configuration files
  • Docker/Kubernetes configs
  • When human readability is priority

Frequently Asked Questions

Q: What's the difference between Format and Minify?

A: Format adds whitespace and indentation for readability. Minify removes all unnecessary whitespace to reduce file size. Use Format for development, Minify for production.

Q: Why is my JSON showing as invalid?

A: Common issues include:

  • Missing quotes on property names
  • Using single quotes instead of double quotes
  • Trailing commas
  • Unescaped special characters
  • Missing closing brackets or braces

Q: Can I format JSON with comments?

A: Standard JSON doesn't support comments. However, some implementations (like JSON5) do. This tool follows standard JSON specification which doesn't allow comments.

Q: What's the maximum JSON size I can format?

A: The tool can handle several MB of JSON. Very large files (>10MB) may be slow to process in the browser.

Q: How do I fix "Unexpected token" errors?

A: This usually means:

  • Missing comma between properties
  • Extra comma at the end
  • Unclosed quotes or brackets
  • Invalid characters

Check the error message for the specific location and character.

Q: Can I format arrays of objects?

A: Yes! The formatter handles any valid JSON structure including arrays of objects, nested objects, and mixed data types.

Q: Should I minify JSON for APIs?

A: Most modern web servers automatically compress responses with gzip/brotli, which is more effective than minifying. Minifying is most useful for:

  • Client-side storage
  • Embedded JSON in HTML
  • When compression isn't available

Privacy & Security

Your privacy is important to us:

  • No data is sent to any server
  • All formatting happens in your browser
  • No cookies or tracking
  • No account or login required
  • Completely free to use

Comments

Complete Tools
AboutTermsPrivacyContact

Copyright © 2022 - 2025 Complete Tools. Unless otherwise noted, all code MIT license.


Made with by Complete JavaScript