RFC 8259 in Context
RFC 8259, published by the IETF in December 2017, is the current authoritative JSON specification. It obsoletes RFC 7159 (2014) and RFC 4627 (2006), completing a twelve-year standardisation journey that transformed JSON from an informal notation in a JavaScript specification into a formal IETF Internet Standard.
By the time RFC 8259 was published, JSON had already become the dominant data interchange format for web APIs, configuration files, and document storage. The RFC's main contribution is not to change the format — JSON users barely noticed its publication — but to remove the encoding ambiguity that had persisted since RFC 4627. For a practical introduction to the format itself, see What Is JSON?
The UTF-8 Mandate
The key change in RFC 8259 is a normative requirement for UTF-8 encoding:
"JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8."
Earlier specifications (RFC 4627 and RFC 7159) permitted UTF-8, UTF-16, and UTF-32, with the encoding to be auto-detected from a BOM or from the first four bytes. In practice, virtually every JSON implementation used UTF-8, but the specification allowed alternatives that created ambiguity in content negotiation and in parsers that handled encoding detection.
RFC 8259 also explicitly prohibits a UTF-8 BOM at the start of a JSON text. A BOM in UTF-8 JSON (0xEF 0xBB 0xBF) is not valid under RFC 8259 — something that surprised some implementors who had been accepting it permissively.
What Changed from RFC 7159
Beyond the UTF-8 mandate, RFC 8259 made several smaller adjustments:
- Removed the normative reference to Unicode. RFC 7159 referenced the Unicode standard by version; RFC 8259 refers to it informally, decoupling the JSON spec from Unicode version updates.
- Removed the recommendation to add a BOM for encoding detection — the BOM is now explicitly prohibited.
- Clarified that a JSON text is defined as a single serialised JSON value (not necessarily an object or array), aligning with the earlier RFC 7159 relaxation.
RFC 8259 and ECMA-404
RFC 8259 was coordinated with the simultaneous publication of ECMA-404 Second Edition by Ecma International. Both documents were aligned during development to eliminate the wording divergences that had existed between the IETF and Ecma tracks since 2013.
The two documents serve different purposes. RFC 8259 covers the IETF context: media types (application/json), encoding requirements, and the use of JSON in internet protocols. ECMA-404 is a pure grammar specification with no normative prose beyond the data model — deliberately minimal to serve as a stable international standard. Together they form the dual-track definition of JSON.