Technical Summary
This document is an update to RFC 7159 to promote the JSON
format to Internet Standard. In promoting to Internet
Standard, this document is a minimal update to RFC 7159 to
apply accepted errata and to normatively reference ECMA-404.
Working Group Summary
This document had numerous reviews, drawn out over several months.
While no new technical concerns were raised, the consensus on this
document is rough due to the unique nature of the normative
reference to ECMA-404. It is not strictly necessary to understand
ECMA-404 to implement JSON; rather the reference is an agreement
with Ecma TC39 to agree on a single shared definition of JSON.
Document Quality
JSON is widely used and there are multiple implementations.
Personnel
Matthew Miller is the document shepherd. Alexey Melnikov is
the responsible AD.
RFC Editor Note
RFC Editor Note
1)
OLD:
(In the header)
Obsoletes: 4627, 7158, 7159 (if approved)
NEW:
Obsoletes: 7159 (if approved)
2) Reference to ECMA-262:
The reference to "ECMAScript Language Specification, Third Edition"
[ECMA-262] is intentional. While newer versions exist at the time of
this document's publication, this specific version of ECMA-262
illustrates the history of the JSON data format.
3) Errata References
The text for the following errata references need to be updated to
correctly describe the specific erratum; the authors and chairs were not
able to determine how to accomplish that with the existing tooling:
* [Err3915] RFC Errata, "Errata ID 3915", RFC 7159, <http://rfc-editor.org>
* [Err4264] RFC Errata, "Errata ID 4264", RFC 7159, <http://rfc-editor.org>
* [Err4336] RFC Errata, "Errata ID 4336", RFC 7159, <http://rfc-editor.org>
4). Please replace the whole section 8.1 to read:
OLD:
JSON text SHALL be encoded in UTF-8, UTF-16, or UTF-32 [UNICODE]
(Section 3). The default encoding is UTF-8, and JSON texts that are
encoded in UTF-8 are interoperable in the sense that they will be
read successfully by the maximum number of implementations; there are
many implementations that cannot successfully read texts in other
encodings (such as UTF-16 and UTF-32).
Implementations MUST NOT add a byte order mark (U+FEFF) to the
beginning of a JSON text. In the interests of interoperability,
implementations that parse JSON texts MAY ignore the presence of a
byte order mark rather than treating it as an error.
NEW:
When transmitting over a network protocol, or as a payload of a
network protocol intended to be interpreted as part of a protocol,
JSON text MUST be encoded in UTF-8 (Section 3 of [UNICODE]).
Previous specifications of JSON have not required the use of UTF-8
when transmitting JSON text. However, the vast majority of
JSON-based software implementations have chosen to use the UTF-8
encoding, to the extent that it is the only encoding that achieves
interoperability.
Implementations MUST NOT add a byte order mark (U+FEFF) to the
beginning of a networked-transmitted JSON text. In the interests
of interoperability, implementations that parse JSON texts MAY
ignore the presence of a byte order mark rather than treating it
as an error.
5) Please add the following to the "Appendix A. Changes from RFC 7159":
Recommendations about recommended charset for JSON was changed to UTF-8.