The IETF just published RFC 8259 (also known as “STD 90”). Editor, yr humble servant. The legacy-ASCII full text is here and there’s a nice-looking HTML verion here. I think this is the last specification of JSON that anyone will ever publish.

The story of how we got to RFC 7159, this RFC’s predecessor, is told in JSON Redux AKA RFC7159 and I won’t re-tell it. The reason 8259 exists is that the ECMAScript gang went and wrote their own extremely minimal spec, Standard ECMA-404: The JSON Data Interchange Syntax, and there was reason for concern over dueling standards. But, after a certain amount of standards-org elephant-gavotte, each of ECMA 404 and RFC 8259 normatively references the other and contains a commitment to keep them consistent in case any errors turn up. Which is a good thing, but this text has been re-examined and re-polished so many times that I doubt either side will ever revisit the territory, thank goodness.

8259 contains one new sentence: “JSON text exchanged between systems that are not part of a closed ecosystem MUST be encoded using UTF-8 [RFC3629].” Given that, by 2017, an attempt to exchange JSON encoded in anything but UTF-8 would be irrational, this hardly needs saying; but its absence felt like an omission.

Which spec should you use? · If you want to understand JSON syntax, you still can’t beat Doug Crockford’s original formulation at JSON.org. If you want to use an RFC as foundation for a REST API or some other Internet protocol, I actually don’t recommend 8259, I recommend I-JSON, RFC 7493, which describes exactly the same syntax as all the other specs (by referencing 7159), but explicitly rules out some legal-but-dumbass things you could do that might break your protocol, for example using anything but UTF-8 or having duplicate member names in your objects.

What next? · I wouldn’t be surprised if the IETF JSON Working Group shut down forever. On the other hand, we still lack a decent high-quality JSON Schema language. Also, JSONPath, which is damn useful, doesn’t have a proper definition anywhere. So there’s work to be done if anyone wants to do it.

Thanks and apologies · To the working group, its chairs and Area Directors and members. Also, at one point in the process I got all grumpy and sulky and they didn’t let that get in the way, just went ahead and got the job done. The Internet owes them thanks.