What it is and the problem it solves
JSON is a minimal, language-independent data interchange format. It solves the problem of serialising structured data for transmission without requiring full language runtimes or complex parsers.
How it works
JSON encodes data as plain text using a strict subset of JavaScript’s object literal syntax: curly braces for objects, square brackets for arrays, double-quoted strings, numbers, booleans, and null. It omits functions, dates, undefined, and circular references. Parsing requires a lexer and parser that enforce these constraints — no execution, no evaluation.
What works
Its syntax is trivial to generate and parse in any language. Its reliance on existing JavaScript grammar made it instantly usable in browsers. Its strictness prevents ambiguous edge cases like XML’s namespace resolution or DTD dependencies.
What does not
JSON does not define data types beyond its six primitives. It does not specify encoding, transport, versioning, or error handling. It does not support comments, trailing commas, or hexadecimal numbers. It does not enforce semantic meaning — two identical JSON strings may represent incompatible concepts.
What it changes
JSON displaced XML for web API payloads by removing markup overhead and enabling direct evaluation in browsers. It shifted the burden of data fidelity from document structure to developer discipline — schema, validation, and typing became external concerns.
Is it worth your time
Yes, if you move data between systems and need predictable, human-readable, low-overhead interchange. No, if you require schema validation, binary efficiency, or extensibility — JSON provides none of those by itself.