Re: [Json] JSON for Internet messages

Tatu Saloranta <> Wed, 03 July 2013 19:21 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 282C521F9DB2 for <>; Wed, 3 Jul 2013 12:21:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, NO_RELAYS=-0.001]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id S015LjLS+rGu for <>; Wed, 3 Jul 2013 12:21:52 -0700 (PDT)
Received: from ( [IPv6:2a00:1450:400c:c05::235]) by (Postfix) with ESMTP id DAF2C21F9DA5 for <>; Wed, 3 Jul 2013 12:21:48 -0700 (PDT)
Received: by with SMTP id hq4so498762wib.2 for <>; Wed, 03 Jul 2013 12:21:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=23JDE6vCTmtvyhNunSwFvTbNHbksaNeg1cGCFIucUcg=; b=AYRlTg5MOEzeRw7I/jLHpy/5qE8fhb250NLXlgWGAoXF/b7dUWtOSVyLh+m4syhuzl 107mBmYcRVH5A8kfyk2KxGi9NyBCiPr37Wc9qF64+HqWYMc+kV7GuY+bera+TCYXnfVb 5LA8m6VmkRfGeSGGU/qvHrH7Wp9UVtCCD+nGOypHwhc9nIaA43LM7UOtfvbGBoeO9HxX S8HkX1S7cGVUioUNb+lk3xQl6Uz+fXqQGP7YMZo8BJedBfqyOM15abfPNHoui+YNvSV3 OxYbGtZAhGLa2VauM58YNzgiGsQDHU/LsoeO34uUs/Hv2+oriYuFZsyOSD+/GWT68oIz 5cIw==
MIME-Version: 1.0
X-Received: by with SMTP id lm6mr19145538wic.50.1372879301609; Wed, 03 Jul 2013 12:21:41 -0700 (PDT)
Received: by with HTTP; Wed, 3 Jul 2013 12:21:41 -0700 (PDT)
In-Reply-To: <>
References: <>
Date: Wed, 3 Jul 2013 12:21:41 -0700
Message-ID: <>
From: Tatu Saloranta <>
To: Tim Bray <>
Content-Type: multipart/alternative; boundary=001a11c265be1790e904e0a05f6e
Cc: "" <>
Subject: Re: [Json] JSON for Internet messages
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: Wed, 03 Jul 2013 19:21:53 -0000

On Wed, Jul 3, 2013 at 9:34 AM, Tim Bray <> wrote:

> I think it will be helpful to put a stick in the ground:  Most of my
> professional activity centers around designing and using message-passing
> application-level APIs.  In basically all of them, the payload is JSON.
> So I care a lot about JSON, but I don’t care in the slightest about usages
> where the JSON isn’t being used for application-level message protocol
> payloads (are there such usages?  I'm curious).  Also, I’ve never
> encountered a scenario where the messages were of sufficient size that
> anyone gave a rat’s ass about streaming.
Large payload are commonly used for things like map/reduce jobs and search
indexing. And databases of sorts (NoSQL or traditional) are similarly
exposing large datasets where one certainly does not want to or even be
able to handle all data in memory.

There are ways to avoid problems with large Objects for many cases within
this domain, for example, by sending sequences of root-level objects.
Parsers then need to be able to handle streams of multiple Objects.
Streaming is equally important (or perhaps more so) when generating
results; for latency (as well as memory usage) reasons large result sets
are best sent in streaming manner.

Same is true for XML as well, so I don't think this is JSON-specific

I might as well claim that I have rarely worked on JSON use case where
Javascript matters at all. This is a true statement, but I would not draw
conclusions from this to allege that Javascript would be largely irrelevant
for JSON data exchange.

I think part of the challenge is that for many practicioners JSON "Just
Works" well enough that they could not care less about further
standardization: and in fact the whole notion that duplicate keys are a
major problem seems like a red herring.
It has never been a problem for me, nor has there been user requests beyond
schema (and schema validator) implementors who care more. But it is
possible that perhaps this has been a significant problem for others.

-+ Tatu +-