Re: [Json] Consensus on JSON-text (WAS: JSON: remove gap between Ecma-404 and IETF draft)

Carsten Bormann <cabo@tzi.org> Thu, 28 November 2013 08:41 UTC

Return-Path: <cabo@tzi.org>
X-Original-To: json@ietfa.amsl.com
Delivered-To: json@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 454B31ACCDA; Thu, 28 Nov 2013 00:41:21 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.551
X-Spam-Level:
X-Spam-Status: No, score=-1.551 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, SPF_HELO_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Ao8ILkGMOpUe; Thu, 28 Nov 2013 00:41:19 -0800 (PST)
Received: from informatik.uni-bremen.de (mailhost.informatik.uni-bremen.de [IPv6:2001:638:708:30c9::12]) by ietfa.amsl.com (Postfix) with ESMTP id DD1EC1A1F5E; Thu, 28 Nov 2013 00:41:18 -0800 (PST)
X-Virus-Scanned: amavisd-new at informatik.uni-bremen.de
Received: from smtp-fb3.informatik.uni-bremen.de (smtp-fb3.informatik.uni-bremen.de [134.102.224.120]) by informatik.uni-bremen.de (8.14.5/8.14.5) with ESMTP id rAS8f8V8026682; Thu, 28 Nov 2013 09:41:08 +0100 (CET)
Received: from [134.102.116.187] (unknown [134.102.116.187]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by smtp-fb3.informatik.uni-bremen.de (Postfix) with ESMTPSA id E453F255; Thu, 28 Nov 2013 09:41:07 +0100 (CET)
Mime-Version: 1.0 (Mac OS X Mail 7.0 \(1822\))
Content-Type: text/plain; charset="windows-1252"
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <CEBC180B.2E5DA%jhildebr@cisco.com>
Date: Thu, 28 Nov 2013 09:41:04 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <558DF938-2B50-45B0-9696-03D9B9F98690@tzi.org>
References: <CADnb78h8AjPcQLOCwNm0Pt3pObh6uFV5+zy0c_YU6B-u4MtY1Q@mail.gmail.com> <AA45B3C6-1DC5-4B1E-8045-C9FE76022584@vpnc.org> <C93F89AD-81D2-4489-ADC4-AB05A5B10883@cisco.com> <CAHBU6itgE9=WP+c0oXt1W647b1zz+N6+4ZqRa63Ve91TUsGzTA@mail.gmail.com> <CEBC180B.2E5DA%jhildebr@cisco.com>
To: "Joe Hildebrand (jhildebr)" <jhildebr@cisco.com>
X-Mailer: Apple Mail (2.1822)
Cc: IETF Discussion <ietf@ietf.org>, JSON WG <json@ietf.org>, Tim Bray <tbray@textuality.com>, "Matt Miller (mamille2)" <mamille2@cisco.com>, "www-tag@w3.org" <www-tag@w3.org>, es-discuss <es-discuss@mozilla.org>
Subject: Re: [Json] Consensus on JSON-text (WAS: JSON: remove gap between Ecma-404 and IETF draft)
X-BeenThere: json@ietf.org
X-Mailman-Version: 2.1.15
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, 28 Nov 2013 08:41:21 -0000

On 28 Nov 2013, at 08:44, Joe Hildebrand (jhildebr) <jhildebr@cisco.com> wrote:

>> JSON-text  = value
> 
> We also need to make an explicit decision about whitespace-tolerance.

If the point is to track the changes made by ECMA-404 that decision has been made for us (see end of section 4 in 404).
(Note also that JSON is whitespace-tolerant today, so not having that for the new non-containers at top-levels but everywhere else would be rather surprising.*)

Minimal change appears to be:

JSON-text = ws value ws

Grüße, Carsten

*) The other interesting practical usage here is removing newlines from the allowed whitespace for a single JSON-text and joining sequences of these by newlines to form streams of JSON values.
But that is outside the scope of application/json and application/__+json, an instance of which is exactly one JSON-text.
(truenull3true is a valid stream of JSON texts if you don’t require adding whitespace as delimiters.
Implementations that employ a typical form of tokenization without knowing what those tokens can be in JSON won’t like that.  In any case, whitespace is needed to separate numbers.)