JSON RFC

JSON's specification has a real history: an original format, three successive IETF RFCs, and a parallel Ecma standard. Learn why each revision happened and which document to actually cite today.

Try It Now

Put this into practice with OpenFormatter's free tools — no signup, 100% client-side.

gavel

Specification: RFC 8259 is designated STD 90 — a full IETF Internet Standard, the highest maturity level the standards track has. Neither of its predecessors (RFC 4627, RFC 7159) reached that status; both were Proposed Standard only. If a project or document needs to cite "the" JSON standard, RFC 8259 is the one with the strongest formal standing.

priority_high

Important: A bare JSON value on its own — just "hello" or just 42, with no surrounding object or array — was not valid top-level JSON text under the original RFC 4627. That restriction was removed in RFC 7159 (2014). Tooling or documentation written against the older rule may describe a constraint that hasn't applied for over a decade.

Definition

JSON's specification exists as four documents, not one — each revision fixed a real problem discovered through use, not change for its own sake. Douglas Crockford specified the original format in the early 2000s and registered json.org; the first formal IETF specification followed as RFC 4627 in July 2006, also authored by Crockford. That version required top-level JSON text to be an object or array only — a bare string or number on its own wasn't valid top-level JSON under the original RFC.

RFC 7159 (March 2014, edited by Tim Bray) obsoleted RFC 4627 after eight years of real-world use had "revealed certain patterns which, while allowed by its specifications, have caused interoperability problems" — the RFC's own words. The headline change removed the object-or-array-only restriction, so any JSON value became valid top-level text. It also added guidance on duplicate object names and member ordering, clarified that arrays may mix types, and strengthened language around IEEE 754 number interoperability.

RFC 8259 (December 2017, also edited by Tim Bray) obsoleted RFC 7159 in turn, fixing further errata and — more significantly — achieving STD 90: full Internet Standard status, the highest maturity level on the IETF standards track. Neither RFC 4627 nor RFC 7159 reached that status. RFC 8259 is the current IETF standard and the one to cite going forward.

ECMA-404, maintained separately by Ecma International, defines the same grammar. Its 2nd Edition was published the same month as RFC 8259 — December 2017 — because the two documents explicitly commit to staying aligned: "If either document is changed in the future, ECMA and the IETF will work together to ensure that the two documents stay aligned through the change." Citing either RFC 8259 or ECMA-404 is correct; they describe the same specification.

JSON Specification Documents
DocumentDateEditorStatus
RFC 4627July 2006Douglas CrockfordObsolete — superseded by RFC 7159
RFC 7159March 2014Tim BrayObsolete — superseded by RFC 8259
RFC 8259December 2017Tim BrayCurrent — STD 90, Internet Standard
ECMA-404December 2017 (2nd Ed.)Ecma InternationalCurrent — kept aligned with RFC 8259

Common Mistakes

Citing RFC 4627 or RFC 7159 as "the" JSON specification

Both are obsolete — RFC 4627 was superseded in 2014, and RFC 7159 in turn in 2017. Citing an obsolete RFC can misrepresent what's actually guaranteed today: RFC 4627, for example, required top-level JSON text to be an object or array, a restriction that no longer exists.

Fix: Cite RFC 8259 (STD 90) as the current IETF standard, or ECMA-404 for an audience more familiar with Ecma standards — the two are formally committed to staying aligned.

Official Specification

Related References