Re: [Json] serializing sequences of JSON values

Matt Miller <> Thu, 13 March 2014 22:24 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 88DC71A0768 for <>; Thu, 13 Mar 2014 15:24:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -15.048
X-Spam-Status: No, score=-15.048 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.547, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id JIUJNUiBghg9 for <>; Thu, 13 Mar 2014 15:24:05 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 06BF11A0747 for <>; Thu, 13 Mar 2014 15:24:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;;; l=2781; q=dns/txt; s=iport; t=1394749439; x=1395959039; h=message-id:date:from:mime-version:to:subject:references: in-reply-to:content-transfer-encoding; bh=tWwtpxM0GN7w2JJDfF7H516GRtdyb92wsvejZf8sdYw=; b=MZdIB7ryWDR4sraQiCmTW+87nFHj+4hiUjs84Hx7BlnX4ZGmIEfqhFd8 taOWrmhPOD+qiyJyo8cpq2LKNbJyS+2taldKoNo10M64xrz840af1KJhf gJdqM7ym5Js06VFTCfISde8goUEnMwjX8M9/ZmHWp6jEEvgIYuMsglYwR U=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-AV: E=Sophos;i="4.97,649,1389744000"; d="scan'208";a="307154133"
Received: from ([]) by with ESMTP; 13 Mar 2014 22:23:58 +0000
Received: from ( []) by (8.14.5/8.14.5) with ESMTP id s2DMNwii012699 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Thu, 13 Mar 2014 22:23:58 GMT
Received: from MAMILLE2-M-T03K.local ( by ( with Microsoft SMTP Server (TLS) id; Thu, 13 Mar 2014 17:23:58 -0500
Message-ID: <>
Date: Thu, 13 Mar 2014 16:23:56 -0600
From: Matt Miller <>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.3.0
MIME-Version: 1.0
To: Larry Masinter <>, Paul Hoffman <>, "" <>
References: <em2c025504-6532-4513-a339-3d71c4cdfbda@helsinki> <> <>
In-Reply-To: <>
X-Enigmail-Version: 1.6
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
X-Originating-IP: []
Subject: Re: [Json] serializing sequences of JSON values
X-Mailman-Version: 2.1.15
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: Thu, 13 Mar 2014 22:24:07 -0000

Hash: SHA512

On 3/13/14, 3:23 PM, Larry Masinter wrote:
> I wonder if there is any lesson from XMPP--  which wanted
> sequence-of-XML-values in an indefinite length stream -- that would
> apply to JSON. What would XMPP look like if it were redone in JSON
> instead of XML?

/me exchanges JSON chair hat for XMPP enthusiast hat ...

If XMPP didn't exist and we instead did JMPP, it might be a series of
discrete objects.  However, the direction of the later "XMPP over <x>"
adaptations (e.g., [BOSH] and [XMPP-WS]) speak toward wanting to use
an existing transport that provides block-oriented framing around
complete structures.

Dealing with partial XML-like structures in XMPP has ranged from
inconvenient to impractical because the vast majority of existing XML
software has assumed a whole XML document when parsing starts.  There
are few libraries that truly allow one to feed XML in fits and starts
and get timely output without some amount of modification or
preprocessing.  When the XMPP community took efforts to apply XMPP
over other transports, the direction has so far leaned toward the
whole documents that most implementations expect; even though the
preprocessing required is rather small, the ability to re-use existing
implementations without first considering oft-unpublished details was
a very powerful motivator.

> If there a tendency to standardize on JSON as a replacement to XML
> in protocols, then would providing guidelines for how to do so be
> in scope?

/me continues with no hat whatsoever

I think there is value in a guidelines document similar to BCP 79 --
particularly a "don't use JSON for <y>" part.  I'm somewhat
unconcerned on how that is done -- whether that means I-JSON morphs
into that or it is its own separate thing.

- -- 
- - m&m

Matt Miller < >
Cisco Systems, Inc.

[BOSH] "XEP-0124: Bidirectional-streams Over Synchronous HTTP (BOSH)"
< >
[XMPP-WS] "An XMPP Sub-protocol for WebSocket" < >
Version: GnuPG/MacGPG2 v2.0.22 (Darwin)
Comment: GPGTools -
Comment: Using GnuPG with Thunderbird -