Re: [Json] I-JSON Tpic #2: Top-Level

"Manger, James" <James.H.Manger@team.telstra.com> Wed, 30 April 2014 03:01 UTC

Return-Path: <James.H.Manger@team.telstra.com>
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 F16B61A090D for <json@ietfa.amsl.com>; Tue, 29 Apr 2014 20:01:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.202
X-Spam-Level:
X-Spam-Status: No, score=-0.202 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_AU=0.377, HOST_EQ_AU=0.327, RCVD_IN_DNSWL_NONE=-0.0001, RELAY_IS_203=0.994] 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 maOkyZzPt7Ef for <json@ietfa.amsl.com>; Tue, 29 Apr 2014 20:01:48 -0700 (PDT)
Received: from ipxbno.tcif.telstra.com.au (ipxbno.tcif.telstra.com.au [203.35.82.204]) by ietfa.amsl.com (Postfix) with ESMTP id 810041A090B for <json@ietf.org>; Tue, 29 Apr 2014 20:01:48 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="4.97,955,1389704400"; d="scan'208";a="6318982"
Received: from unknown (HELO ipcbni.tcif.telstra.com.au) ([10.97.216.204]) by ipobni.tcif.telstra.com.au with ESMTP; 30 Apr 2014 12:54:02 +1000
X-IronPort-AV: E=McAfee;i="5600,1067,7423"; a="218512958"
Received: from wsmsg3701.srv.dir.telstra.com ([172.49.40.169]) by ipcbni.tcif.telstra.com.au with ESMTP; 30 Apr 2014 13:01:44 +1000
Received: from WSMSG3153V.srv.dir.telstra.com ([172.49.40.159]) by WSMSG3701.srv.dir.telstra.com ([172.49.40.169]) with mapi; Wed, 30 Apr 2014 13:01:44 +1000
From: "Manger, James" <James.H.Manger@team.telstra.com>
To: IETF JSON WG <json@ietf.org>
Date: Wed, 30 Apr 2014 13:01:43 +1000
Thread-Topic: [Json] I-JSON Tpic #2: Top-Level
Thread-Index: Ac9j0E+mJXEyey+7Q6641OWV6IMh9AATS8Sg
Message-ID: <255B9BB34FB7D647A506DC292726F6E1154581E7C5@WSMSG3153V.srv.dir.telstra.com>
References: <535EB119.4000908@cisco.com> <A9809696-0519-4B37-A217-179D9FCD5E1C@vpnc.org>
In-Reply-To: <A9809696-0519-4B37-A217-179D9FCD5E1C@vpnc.org>
Accept-Language: en-US, en-AU
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US, en-AU
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: http://mailarchive.ietf.org/arch/msg/json/dbfr7BVOtdVnbG173l5-5BoIVXE
Subject: Re: [Json] I-JSON Tpic #2: Top-Level
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: Wed, 30 Apr 2014 03:01:50 -0000

>> "draft-i-json-01 says the top level is an object (but doesn’t say
>> MUST, eek).  I have heard arguments for allowing arrays too."

> There is no need for any top-level restriction. The restriction doesn't help any capable receiver.

I agree.

"Almost always use objects for top-level messages" is good advice for designers of new protocols and messages.
"Only accept objects" is horrible advice for developers of JSON parsers and library functions.

JSON has primitives so an "object-only" rule can only work if there is a crystal clear divide between those subsets of a JSON data structure that might be "exchanged" and those subsets that are too low-level to ever need to be "exchanged". There is no such divide.

--
James Manger