Re: [Json] JSON or I-JSON?

Phillip Hallam-Baker <ietf@hallambaker.com> Fri, 26 February 2021 23:14 UTC

Return-Path: <hallam@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 E6C913A13D2 for <json@ietfa.amsl.com>; Fri, 26 Feb 2021 15:14:46 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.399
X-Spam-Level:
X-Spam-Status: No, score=-1.399 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=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 HzVWmFg5MR6H for <json@ietfa.amsl.com>; Fri, 26 Feb 2021 15:14:45 -0800 (PST)
Received: from mail-yb1-f176.google.com (mail-yb1-f176.google.com [209.85.219.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 19D593A13D1 for <json@ietf.org>; Fri, 26 Feb 2021 15:14:45 -0800 (PST)
Received: by mail-yb1-f176.google.com with SMTP id l8so10485587ybe.12 for <json@ietf.org>; Fri, 26 Feb 2021 15:14:45 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=PkRK713FofJRPpXsCnNDTp5+pDBQ4dR7oGiIP9rUCj0=; b=qlIy4ANT4V0YAAVVkgDhHLWIptUmbqTOMGiFt3rgEq4rOK8+lR0Gvm2Hnjm8gdMcas 5s7ObZz91dI64BuT0u0ijzMQryFbBlHiN/J96a3j8804KFyVcAQ6RilAaAUKlXcbXjEx Xn06efhDcexZguthBYKvwgCzyAdZgBLXmdzrhEQRiCvbeKD/H33N8NkEuX1y/IaYKVmP LbQffV1ZnkaJ8gg4ogLBr8ldIW3xrJ2aDEbOooM34otDeGodNb1yQoG+PL6/436hkqbV +vNPZhYjpQZTau1GPDZ+Mq5I0yiPlKgWyquHWAEf91sM/yIyoVHKyRuK0v9Kb3Ojos42 fxUg==
X-Gm-Message-State: AOAM533LwIA3aFKOlLlREf8GTSaMVmJRdksYrGWptxb59uZ0k3wnY2AQ aJLJMF0h73g5fDL+C/4BBQWROMN2f+INTx05nfA=
X-Google-Smtp-Source: ABdhPJxllUN4ZgWqT3q9tJL706f/ilkbSFb+EWa848EmsNFJp1oZGIzr2WcJqtkyr4a1eMnIxl7RY2LURKOPYldCOS8=
X-Received: by 2002:a25:dbc6:: with SMTP id g189mr8552778ybf.273.1614381284160; Fri, 26 Feb 2021 15:14:44 -0800 (PST)
MIME-Version: 1.0
References: <90cddfc3-c320-5ac0-210b-c77636383a6b@codalogic.com> <1c819bc9-283d-e36b-7de2-507553420faa@gmail.com> <CAD2gp_TKzBkK=G6PrSKmLyg=67MmFdszCi7X1LVeoO89r63jQA@mail.gmail.com> <ce21b4d4-b384-6428-7002-0f029eb6918f@codalogic.com> <CAHBU6iv0E2111g99Y4AzX1MWhPAE=SsZxnU9y9zQHUuEAWgVqg@mail.gmail.com>
In-Reply-To: <CAHBU6iv0E2111g99Y4AzX1MWhPAE=SsZxnU9y9zQHUuEAWgVqg@mail.gmail.com>
From: Phillip Hallam-Baker <ietf@hallambaker.com>
Date: Fri, 26 Feb 2021 18:14:33 -0500
Message-ID: <CAMm+LwhN+7W47H78rsD1zOOofn+LzEzZodEfPVzMxBOe2XhmGw@mail.gmail.com>
To: Tim Bray <tbray@textuality.com>
Cc: Pete Cordell <petejson@codalogic.com>, "json@ietf.org" <json@ietf.org>, John Cowan <cowan@ccil.org>, Anders Rundgren <anders.rundgren.net@gmail.com>
Content-Type: multipart/alternative; boundary="000000000000f9779605bc456ed8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/json/z6Mr_ZtYUUZab-tWU419eVom-jE>
Subject: Re: [Json] JSON or I-JSON?
X-BeenThere: json@ietf.org
X-Mailman-Version: 2.1.29
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: <https://mailarchive.ietf.org/arch/browse/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: Fri, 26 Feb 2021 23:14:47 -0000

On Fri, Feb 26, 2021 at 10:03 AM Tim Bray <tbray@textuality.com> wrote:

> I personally would use I-JSON if possible because it has useful MUSTs in
> it to help resolve arguments between implementors.  [But then, I edited the
> RFC, so I would.]  There's one downside, which is that as far as I know,
> there's little software that actually enforces the I-JSON constraints.
>

I take I-JSON as giving a concrete example of how to be conservative in
what you send.

I also use it in some of my stuff to be hyper-restrictive in what is
accepted for purposes of conformance testing (and the corresponding
generator is liberal in what it sends).





> On Fri, Feb 26, 2021 at 6:55 AM Pete Cordell <petejson@codalogic.com>
> wrote:
>
>> On 26/02/2021 13:59, John Cowan wrote:
>> >
>> >
>> > On Fri, Feb 26, 2021 at 7:49 AM Anders Rundgren
>> > <anders.rundgren.net@gmail.com <mailto:anders.rundgren.net@gmail.com>>
>> > wrote:
>> >
>> >     If the standard-to-be is supposed to interoperate with browsers and
>> >     node.js the only viable option is RFC7493.
>> >
>> >     If the standard-to-be also targets the financial market, further
>> >     constraints apply since floating point arithmetic is ill-suited for
>> >     monetary operations. E.g. a monetary amount of 46.99 should be
>> >     represented in JSON as the string "46.99".
>> >
>> >
>> > RFC 8259 incorporates all of the restrictions of 7493 as
>> > interoperability warnings, including the one above.  That way it stays
>> > compatible with ECMA-404 (which has no such restrictions or warnings)
>> > but still steers you away from the dark corners of JSON.
>>
>> RFC 8259 tells you "that way lies madness" but doesn't actually tell you
>> to not to go that way!  RFC 7493 makes it explicit not to go that way
>> for those that might otherwise say "well you didn't tell me not to...".
>>
>> Pete.
>> --
>> ---------------------------------------------------------------------
>> Pete Cordell
>> Codalogic Ltd
>> C++ tools for C++ programmers, http://codalogic.com
>> Read & write XML in C++, http://www.xml2cpp.com
>> ---------------------------------------------------------------------
>>
>> _______________________________________________
>> json mailing list
>> json@ietf.org
>> https://www.ietf.org/mailman/listinfo/json
>>
> _______________________________________________
> json mailing list
> json@ietf.org
> https://www.ietf.org/mailman/listinfo/json
>