Re: [Json] JSON for Internet messages

Jacob Davies <jacob@well.com> Wed, 03 July 2013 19:30 UTC

Return-Path: <cromis@gmail.com>
X-Original-To: json@ietfa.amsl.com
Delivered-To: json@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A17C011E8202 for <json@ietfa.amsl.com>; Wed, 3 Jul 2013 12:30:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.978
X-Spam-Level:
X-Spam-Status: No, score=-1.978 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, NO_RELAYS=-0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hqZYI8MQLHbe for <json@ietfa.amsl.com>; Wed, 3 Jul 2013 12:30:16 -0700 (PDT)
Received: from mail-qc0-x230.google.com (mail-qc0-x230.google.com [IPv6:2607:f8b0:400d:c01::230]) by ietfa.amsl.com (Postfix) with ESMTP id 2629C11E81F9 for <json@ietf.org>; Wed, 3 Jul 2013 12:30:15 -0700 (PDT)
Received: by mail-qc0-f176.google.com with SMTP id z10so336638qcx.7 for <json@ietf.org>; Wed, 03 Jul 2013 12:30:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type :content-transfer-encoding; bh=7yLcNEaQbe/wgGV77aIfBWIJeW4jvbTa9TVgQ8BP47k=; b=j2gxHey4OwXWQjBFIj2b6p10EQBRNVq8yGhAd5meS/ZQNU3ZmnOG5vYdkfOJj1aY0k 5YjwGjVEDpBobbFLDEuaWimQ5tlIrN/79lSgbwfGZkbbZhBrdeTE40EBlPkujF08HtgA EN2HcNJzAYr5KjA91TYSMHSaKKl2Bzy10bnkNYhFU47vrL/Kx2JZlfaB8/C675rMA313 SbAyRdoXNEuL2DFtI9Bh7d1/KoY2wMwg25GT/bZJDiM8L4vrRFuJOY2E7SXCVAcKWuyk gSOsLBGJ07Q/BFGfl8f3NbdkbsP+LEcAc3YzlvZzLHX/TySeqcE86gNLZb18fApY2NaC 3Zkw==
X-Received: by 10.224.7.129 with SMTP id d1mr5741954qad.108.1372879815521; Wed, 03 Jul 2013 12:30:15 -0700 (PDT)
MIME-Version: 1.0
Sender: cromis@gmail.com
Received: by 10.49.76.42 with HTTP; Wed, 3 Jul 2013 12:29:55 -0700 (PDT)
In-Reply-To: <CAHBU6it55C5vCNLBki1LvjpWd4fANY8LdC4fzxj3a2G_+q=qSA@mail.gmail.com>
References: <CAHBU6it55C5vCNLBki1LvjpWd4fANY8LdC4fzxj3a2G_+q=qSA@mail.gmail.com>
From: Jacob Davies <jacob@well.com>
Date: Wed, 03 Jul 2013 12:29:55 -0700
X-Google-Sender-Auth: AxJiSCy5xXsUZoqsDF-I8crjkjI
Message-ID: <CAO1wJ5TO8DRCvXctk1D5_LjK8me2vUX4adJmLrmJWzi=RNj_eg@mail.gmail.com>
To: Tim Bray <tbray@textuality.com>
Content-Type: text/plain; charset="windows-1252"
Content-Transfer-Encoding: quoted-printable
Cc: "json@ietf.org" <json@ietf.org>
Subject: Re: [Json] JSON for Internet messages
X-BeenThere: json@ietf.org
X-Mailman-Version: 2.1.12
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, 03 Jul 2013 19:30:16 -0000

On Wed, Jul 3, 2013 at 9:34 AM, Tim Bray <tbray@textuality.com> wrote:
> 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).

There are a number of practical use cases for JSON that don't fall
into the neat "externally delimited stream of bytes described by an
application/json media-type" category. That is a separate question to
whether the RFC needs to do much to accomodate them.

1. Files named ".json" and containing a single JSON object or array.
2. Text documents containing embedded JSON - informally, as in
documentation or books, or formally, as in Javascript in HTML or .js
files.
3. Database records where text or binary columns store embedded JSON
representing complex nested objects.

Case 1 is handled the same as a message described as application/json,
no big deal. Cases 2 & 3 may require accommodating non-Unicode
encodings, and may have some special security concerns (e.g.
additional escaping for HTML or Javascript embedding). It would be
nice if the spec separated format from encoding, but it's unlikely to
be the source of any significant problems since in most cases the
handling of encoding will have happened by the time you parse the
text, and the security concerns can be addressed in best-practices.

> Also, I’ve never encountered a scenario where the messages were of sufficient size that
> anyone gave a rat’s ass about streaming.

Me either, and even if there were such cases I find the concerns about
maintaining state unconvincing - maintaining a seen-keys dictionary
for each level of nesting you're in is not all that much of an
imposition or incompatible with a streaming API.