JSON Formatter: Privacy Backed & 100% Client-Side Developer Tools
Learn why a privacy-backed JSON formatter is essential for developers. 100% client-side, zero server transmission formatting for sensitive API payloads.
What is JSON?
JavaScript Object Notation (JSON) is a lightweight data-interchange format that is easy for humans to read and write, and easy for machines to parse and generate. It has become the de facto standard for exchanging data on the web, displacing older formats like XML. You will encounter JSON in:
- REST APIs: As the standard payload format for request and response bodies.
- Configuration Files: Such as
package.json,tsconfig.json, and VS Code settings. - Data Storage: In NoSQL databases like MongoDB or PostgreSQL's JSONB columns.
JSON Syntax Rules
JSON is built on two structures:
- A collection of name/value pairs (an object)
- An ordered list of values (an array)
Data Types
| Type | Description | Example |
|---|---|---|
| String | Sequence of Unicode characters wrapped in double quotes | "hello" |
| Number | Integer or floating point (no NaN or Infinity) | 42, -3.14 |
| Object | Unordered collection of key/value pairs wrapped in {} |
{"key": "value"} |
| Array | Ordered list of values wrapped in [] |
[1, 2, 3] |
| Boolean | True or false | true, false |
| Null | Empty value | null |
Common Syntax Errors
Unlike JavaScript object literals, JSON is incredibly strict. Common pitfalls include:
- Trailing Commas: Not allowed.
[1, 2,]is invalid JSON. - Single Quotes: Keys and string values MUST use double quotes.
'key': 'value'is invalid. - Unquoted Keys: Keys MUST be quoted.
{key: "value"}is invalid. - Comments: JSON does not support comments natively (though tools like
tsconfig.jsonparsers sometimes strip them out before parsing).
Pretty-Printing vs Minification
JSON data is often sent over the wire in a minified format (all unnecessary whitespace removed) to save bandwidth. However, for debugging and reading, developers need pretty-printed JSON (formatted with indentation and line breaks).
Code Examples: Formatting JSON
JavaScript:
const data = { id: 1, name: "Alice", active: true };
// Format with 2 spaces of indentation
const formatted = JSON.stringify(data, null, 2);
console.log(formatted);
Python:
import json
data = {"id": 1, "name": "Alice", "active": True}
# Format with 4 spaces of indentation
formatted = json.dumps(data, indent=4)
print(formatted)
Bash (using jq):
# Pretty-print a minified JSON file
cat data.json | jq .
AST-Based Formatting vs Regex
Formatting JSON using an Abstract Syntax Tree (AST) parser is far more reliable than using regular expressions. An AST parser actually understands the structure of the data, ensuring it doesn't accidentally format string contents that happen to look like JSON, or break when encountering escaped quotes.
Validation vs Schema Checking
Validating JSON simply means checking if the string conforms to the JSON syntax rules (e.g., using JSON.parse()).
Schema Checking involves validating that the JSON data conforms to a specific structure (e.g., ensuring a user object has an id field of type number). This is typically done using tools like JSON Schema or Zod.
For more on typing JSON data, check out our JSON to TypeScript/Zod Guide.
Working with Large JSON Files
When dealing with massive JSON payloads (e.g., gigabytes in size), loading the entire string into memory with JSON.parse() will crash your application. Instead, use:
- Streaming Parsers: Libraries like
Oboe.js(JavaScript) orijson(Python) read the file chunk by chunk. - jq Filters: The command-line tool
jqcan filter and extract data from large JSON streams efficiently.
Need to format a payload right now? Use our JSON Formatter.
Live Tool: JSON Formatter & Validator
Client-Side EngineFormat, validate, and minify JSON with interactive syntax highlighting.