Re: [Json] FYI ECMA, W3C, IETF coordination on JSON

John Cowan <> Tue, 08 October 2013 16:43 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id BE18B21E8253 for <>; Tue, 8 Oct 2013 09:43:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -4.599
X-Spam-Status: No, score=-4.599 tagged_above=-999 required=5 tests=[AWL=1.000, BAYES_00=-2.599, GB_I_LETTER=-2, RCVD_IN_DNSWL_LOW=-1]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 2uswh0dlokYk for <>; Tue, 8 Oct 2013 09:43:00 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 004EE21E8237 for <>; Tue, 8 Oct 2013 09:42:59 -0700 (PDT)
Received: from cowan by with local (Exim 4.72) (envelope-from <>) id 1VTaMV-00073p-Eb; Tue, 08 Oct 2013 12:42:19 -0400
Date: Tue, 08 Oct 2013 12:42:19 -0400
From: John Cowan <>
To: Allen Wirfs-Brock <>
Message-ID: <>
References: <> <> <> <>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <>
User-Agent: Mutt/1.5.20 (2009-06-14)
Sender: John Cowan <>
Cc: Tim Bray <>, JSON WG <>, "Peter F. Patel-Schneider" <>, "" <>, Larry Masinter <>
Subject: Re: [Json] FYI ECMA, W3C, IETF coordination on JSON
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "JavaScript Object Notation \(JSON\) WG mailing list" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 08 Oct 2013 16:43:04 -0000

Allen Wirfs-Brock scripsit:

> The draft was approved by a letter ballot of the Ecma General Assembly.  It is now available as Ecma-404:

Almost all of it is derived directly from the RFC, with some editorial
cleanup.  The Introduction, however, is new.  I reproduce it here in case
the Editor wishes to mine it for anything:

    JSON is a text format that facilitates structured data interchange
    between all programming languages. JSON is syntax of braces,
    brackets, colons, and commas that is useful in many contexts,
    profiles, and applications.  JSON was inspired by the object
    literals of JavaScript aka ECMAScript as defined in the ECMAScript
    Language Specification, third Edition [1]. It does not attempt
    to impose ECMAScript’s internal data representations on other
    programming languages. Instead, it shares a small subset of
    ECMAScript’s textual representations with all other programming

    JSON is agnostic about numbers. In any programming language,
    there can be a variety of number types of various capacities
    and complements, fixed or floating, binary or decimal. That
    can make interchange between different programming languages
    difficult. JSON instead offers only the representation of numbers
    that humans use: a sequence of digits. All programming languages
    know how to make sense of digit sequences even if they disagree
    on internal representations. That is enough to allow interchange.

    JSON text is a sequence of Unicode code points. JSON also depends
    on Unicode in the hex numbers used in the \u escapement [sic]

    Programming languages vary widely on whether they support objects,
    and if so, what characteristics and constraints the objects
    offer. The models of object systems can be wildly divergent
    and are continuing to evolve. JSON instead provides a simple
    notation for expressing collections of name/value pairs. Most
    programming languages will have some feature for representing
    such collections, which can go by names like record, struct,
    dict, map, hash, or object.

    JSON also provides support for ordered lists of values. All
    programming languages will have some feature for representing such
    lists, which can go by names like array, vector, or list. Because
    objects and arrays can nest, trees and other complex data
    structures can be represented. By accepting JSON’s simple
    convention, complex data structures can be easily interchanged
    between incompatible programming languages.

    JSON does not support cyclic graphs, at least not directly. JSON
    is not indicated for applications requiring binary data.

    It is expected that other standards will refer to this one,
    strictly adhering to the JSON text format, while imposing
    restrictions on various encoding details. Such standards may
    require specific behaviours. JSON itself specifies no behaviour.

    Because it is so simple, it is not expected that the JSON grammar
    will ever change. This gives JSON, as a foundational notation,
    tremendous stability. JSON was first presented to the world
    at the website in 2001. JSON stands for JavaScript
    Object Notation.

John Cowan
SAXParserFactory [is] a hideous, evil monstrosity of a class that should
be hung, shot, beheaded, drawn and quartered, burned at the stake,
buried in unconsecrated ground, dug up, cremated, and the ashes tossed
in the Tiber while the complete cast of Wicked sings "Ding dong, the
witch is dead."  --Elliotte Rusty Harold on xml-dev