[Json] Counterproposal #2 on work items

Tim Bray <tbray@textuality.com> Wed, 20 February 2013 18:01 UTC

Return-Path: <tbray@textuality.com>
X-Original-To: json@ietfa.amsl.com
Delivered-To: json@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id 331CB21F871C for <json@ietfa.amsl.com>; Wed, 20 Feb 2013 10:01:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.616
X-Spam-Status: No, score=-3.616 tagged_above=-999 required=5 tests=[AWL=-0.640, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id c8cHK9dOJ7z2 for <json@ietfa.amsl.com>; Wed, 20 Feb 2013 10:01:48 -0800 (PST)
Received: from mail-pa0-f51.google.com (mail-pa0-f51.google.com []) by ietfa.amsl.com (Postfix) with ESMTP id 2875721F8473 for <json@ietf.org>; Wed, 20 Feb 2013 10:01:42 -0800 (PST)
Received: by mail-pa0-f51.google.com with SMTP id hz1so4176896pad.24 for <json@ietf.org>; Wed, 20 Feb 2013 10:01:41 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:x-originating-ip:date:message-id:subject :from:to:content-type:x-gm-message-state; bh=rPYhWeLcmSmffmTp9BPdWyQIc+9wSrnOgYfSQLicoLk=; b=S98liNxRP5DMaOZIDHVEPgTWO4a0VqtU7RGVXAW13ucZvp0Tpc7sWCS9tPscP07NwB ZlRDGvRYac1X03R2T4wKueznkjV7Y9JnILo6uIwVdI9ewJfMi+aUVmqNq5ndLTyqjuVM /WO7QFGcVEkUPC7iBwbE64y/BinAZ93p3r3sU4R4TMDgH6xGiZ/K37jrFKzaJu3gCxYg vQKOHnQFq2YddbL6EiCFOBTFjPBPAOrEhjG0TL/vDMZfcsUP9SQxWMvop/WctudS9+3T 1Obv6YBW3RG32jSr+YtgEkjHBesfF9sO3RKcdAcyWgMyi5e2vf4jOnq6HSvpnQoTsUNj wOVw==
MIME-Version: 1.0
X-Received: by with SMTP id r9mr55172392paz.14.1361383301810; Wed, 20 Feb 2013 10:01:41 -0800 (PST)
Received: by with HTTP; Wed, 20 Feb 2013 10:01:41 -0800 (PST)
X-Originating-IP: []
Date: Wed, 20 Feb 2013 10:01:41 -0800
Message-ID: <CAHBU6isrzwVwYcvucFrQjO=wSbp3S9f=CLXyU_8BznTpGZGSTQ@mail.gmail.com>
From: Tim Bray <tbray@textuality.com>
To: "json@ietf.org" <json@ietf.org>
Content-Type: multipart/alternative; boundary=f46d042fd9181b89d204d62bc095
X-Gm-Message-State: ALoCoQlIq+29yaOfxYz/MgVz4/h8wNTS5NuDcCLN5fvFDg5sWDOebmUStuIISEdb0GZdLwtT9hh/
Subject: [Json] Counterproposal #2 on work items
X-BeenThere: json@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Discussion related to JavaScript Object Notation \(JSON\)." <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, 20 Feb 2013 18:01:49 -0000

JSON is finished and well-defined, and we have an immense amount of running
code in place as testimony.  Perhaps, though it would be worthwhile to do
an analogue of RFC3470 aka BCP70, “Guidelines for the Use of Extensible
Markup Language (XML) within IETF Protocols”, for JSON.

Rather than niggle about things that aren’t really actually problems, since
JSON is observed to pretty well Just Work, actually add some value by
giving good advice on how to get good mileage in the IETF-protocol context.
For example:

- always use UTF-8
- always include a charset parameter on the Media type anyhow
- always make the top-level construct an object
- never have duplicate keys in an object
- bear in mind that if you include U+0000 in a string value, you are making
life difficult for implementors in certain popular languages

... I’m sure the fertile minds here could add to the list.