[Json] Two Documents

Douglas Crockford <douglas@crockford.com> Thu, 13 June 2013 15:51 UTC

Return-Path: <douglas@crockford.com>
X-Original-To: json@ietfa.amsl.com
Delivered-To: json@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id 8D13A21F99F8 for <json@ietfa.amsl.com>; Thu, 13 Jun 2013 08:51:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.513
X-Spam-Status: No, score=-2.513 tagged_above=-999 required=5 tests=[AWL=0.086, BAYES_00=-2.599]
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id t5rpdsZM1B1Y for <json@ietfa.amsl.com>; Thu, 13 Jun 2013 08:50:57 -0700 (PDT)
Received: from mout.perfora.net (mout.perfora.net []) by ietfa.amsl.com (Postfix) with ESMTP id E488721F997F for <json@ietf.org>; Thu, 13 Jun 2013 08:50:53 -0700 (PDT)
Received: from [] ([]) by mrelay.perfora.net (node=mrus1) with ESMTP (Nemesis) id 0M8Ouw-1URW8n0o0A-00wHvr; Thu, 13 Jun 2013 11:50:52 -0400
Message-ID: <51B9EA49.2050604@crockford.com>
Date: Thu, 13 Jun 2013 08:50:33 -0700
From: Douglas Crockford <douglas@crockford.com>
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:17.0) Gecko/20130509 Thunderbird/17.0.6
MIME-Version: 1.0
To: "json@ietf.org" <json@ietf.org>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Provags-ID: V02:K0:x1I3vwY3Cu5rql8UTxlkhIKrzfE0ot3vnWfXooG8uiT 5ZdK7YW3/Hbsg2CPij6+tgbktaM8P4Mre5yVkmNTZUXiThJ34C MxDnZXkcnTo7ClS9dlxDc/NBQLZ40aTngdF9nuCXQlz4c9BdWp mCgKihpzqbL5tmiLJehM7MvZsCBV9qarC5bSUcEaAdqqHLA1aV e7/jilsiiefR1LTepads1gOboHqvuSOljD55HWuDVcWVzttMq1 7PKW5k4lD9ER0U8osYJokG98MBX6XIcgPzGJhKLFKnkGZGzT7a n1TbXCxRaBfUKteuu43KJG8kuNBUvn0x18uTnDLw0Tv8PKDBHy ketjy7i66cBayAwz2k1Edeqenj10ufjDmZxBw7DcO
Subject: [Json] Two Documents
X-BeenThere: json@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "JavaScript Object Notation \(JSON\) WG mailing list" <json.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/json>, <mailto:json-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/json>
List-Post: <mailto:json@ietf.org>
List-Help: <mailto:json-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/json>, <mailto:json-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 13 Jun 2013 15:51:05 -0000

The confusion and controversy around this work is due to a mistake that I
made in RFC 4627. The purpose of the RFC, which is clearly indicated
in the title, was to establish a MIME type. I also gave a description of
the JSON Data Interchange Format. My mistake was in conflating the two,
putting details about the MIME type into the description of the format. My
intention was to add clarity. That obviously was not the result.

JSON is just a format. It describes a syntax of brackets and commas that
is useful in many contexts, profiles, and applications. JSON is agnostic
about all of that stuff. JSON shouldn't even care about character encoding.
Its only dependence on Unicode in the hex numbers used in the \u notation.
JSON can be encoded in ASCII or EBCDIC or even Hollerith codes. JSON can
be used in contexts where there is no character encoding at all, such as
paper documents and marble monuments.

There are uses of JSON however in which such choices matter, and where
behavior needs to be attached to or derived from the syntax. That is
important stuff, and it belongs in different documents. Such documents
will place necessary restrictions on JSON's potential. No such document
can fit all applications, which causes much of the controversy we've seen
here. One size cannot fit all. JSON the format is universal. But real
applications require reasonable restrictions.

So we should be working on at least two documents, which is something we 
discussed earlier. The first is The JSON Data Interchange Format, which is
a simple grammar. The second is a best practices document, which recommends
specific conventions of usage.