Understanding JSON: A Complete Beginner's Guide
JSON (JavaScript Object Notation) is the most widely used data format on the web. If you're building anything that talks to an API, stores configuration, or exchanges data between systems, you're working with JSON.
This guide covers everything you need to know — from basic syntax to real-world best practices.
What Is JSON?
JSON is a lightweight, text-based data interchange format. Despite its name suggesting a connection to JavaScript, JSON is language-independent and supported by virtually every programming language.
JSON was designed to be:
- Human-readable — you can look at JSON and understand the data
- Machine-parseable — computers can efficiently parse and generate it
- Lightweight — minimal syntax overhead compared to XML
JSON Syntax Basics
JSON is built on two structures:
- Objects — a collection of key-value pairs wrapped in curly braces
{} - Arrays — an ordered list of values wrapped in square brackets
[]
Here's a simple example:
{
"name": "Jane Smith",
"age": 30,
"isActive": true,
"skills": ["JavaScript", "Python", "SQL"],
"address": {
"city": "San Francisco",
"state": "CA"
}
}Key Rules
- Keys must be strings wrapped in double quotes (not single quotes)
- Values can be strings, numbers, booleans, null, objects, or arrays
- No trailing commas allowed
- No comments allowed (unlike JavaScript objects)
The 6 JSON Data Types
JSON supports exactly six data types:
| Type | Example | Notes |
|---|---|---|
| String | "hello" |
Must use double quotes |
| Number | 42, 3.14, -1 |
No leading zeros, no hex |
| Boolean | true, false |
Lowercase only |
| Null | null |
Represents absence of value |
| Object | {"key": "value"} |
Unordered key-value pairs |
| Array | [1, 2, 3] |
Ordered list of values |
Note that JSON does not support:
- Dates (use ISO 8601 strings:
"2026-02-11T10:00:00Z") - Functions or methods
undefined(usenullinstead)- Comments
- Single-quoted strings
Real-World JSON Examples
API Response
Most REST APIs return JSON:
{
"status": "success",
"data": {
"users": [
{
"id": 1,
"username": "jane_doe",
"email": "jane@example.com"
},
{
"id": 2,
"username": "john_doe",
"email": "john@example.com"
}
],
"total": 2,
"page": 1
}
}Configuration File (package.json)
{
"name": "my-project",
"version": "1.0.0",
"scripts": {
"start": "node server.js",
"test": "jest"
},
"dependencies": {
"express": "^4.18.0"
}
}Working with JSON in JavaScript
JavaScript has built-in methods for JSON:
// Parse JSON string to JavaScript object
const data = JSON.parse('{"name": "Jane", "age": 30}');
console.log(data.name); // "Jane"
// Convert JavaScript object to JSON string
const json = JSON.stringify({ name: "Jane", age: 30 });
console.log(json); // '{"name":"Jane","age":30}'
// Pretty-print with 2-space indentation
const pretty = JSON.stringify(data, null, 2);Fetching JSON from an API
const response = await fetch("https://api.example.com/users");
const users = await response.json();Working with JSON in Python
import json
# Parse JSON string
data = json.loads('{"name": "Jane", "age": 30}')
print(data["name"]) # Jane
# Convert Python dict to JSON string
json_str = json.dumps({"name": "Jane", "age": 30})
# Pretty-print
pretty = json.dumps(data, indent=2)
# Read from file
with open("data.json") as f:
data = json.load(f)Common JSON Mistakes
1. Trailing Commas
// WRONG — trailing comma after "SQL"
{
"skills": ["JavaScript", "Python", "SQL",]
}2. Single Quotes
// WRONG — must use double quotes
{
'name': 'Jane'
}3. Unquoted Keys
// WRONG — keys must be quoted
{
name: "Jane"
}4. Comments
// WRONG — JSON doesn't support comments
{
"debug": true // enable debug mode
}All of these mistakes will cause parsing errors. Use our JSON Formatter to quickly validate your JSON and catch these issues before they reach production.
JSON vs Other Formats
| Feature | JSON | XML | YAML | CSV |
|---|---|---|---|---|
| Human-readable | Good | Fair | Excellent | Good (for tabular data) |
| Nesting support | Yes | Yes | Yes | No |
| Data types | 6 types | Strings only | Rich types | Strings only |
| Comments | No | Yes | Yes | No |
| File size | Small | Large | Small | Very small |
| Parse speed | Fast | Slow | Medium | Fast |
JSON strikes the best balance of readability, structure, and performance for most web applications.
Need to convert between formats? Try our JSON to CSV or YAML to JSON converters.
Validating and Formatting JSON
Dealing with minified or malformed JSON is frustrating. Our free JSON Formatter lets you:
- Paste any JSON and instantly see it properly indented
- Identify and locate syntax errors
- Minify JSON for production use
- Copy the formatted output with one click
For strict schema validation, the JSON Validator checks your data against JSON syntax rules and highlights exact error positions.
Wrapping Up
JSON is simple by design, but that simplicity is what makes it so powerful. Understanding its six data types, syntax rules, and common pitfalls will save you countless debugging hours.
Key takeaways:
- Always use double quotes for keys and string values
- No trailing commas or comments
- Use
nullinstead ofundefined - Validate your JSON before using it in production
- Use a JSON Formatter to catch errors early