- From: Markus Lanthaler <markus.lanthaler@gmx.net>
- Date: Wed, 10 Jul 2013 16:40:53 +0200
- To: "'RDF WG'" <public-rdf-wg@w3.org>
On Wednesday, July 10, 2013 5:45 AM, Sandro Hawke wrote
> On 07/09/2013 10:29 PM, Peter F. Patel-Schneider wrote:
> > So going only from RFC 4627, a JSON parser MAY produce different output from lots
> > of things that sane people would think have to be the same. My firm belief
> > was that one could find out what SHOULD happen with JSON if RFC 4627 was
> > silent or incoherent by looking at ECMAScript version 3, which is described as
> > the basis of JSON. (To be more precise, JSON is described as being derived
> > from ECMAScript, version 3.) However, I have been told that not only is that
> > not correct, but that there have been active efforts to sever the link between
> > JSON and ECMAScript.
> >
> > So where does that leave JSON numbers, and JSON-LD? The JSON-LD people are
> > firmly behind one peculiar interpretation, which as you show above, is not the
> > one used by Firefox or Node (or, I expect, any JSON interpretation based on
Why is it not? Because JavaScript internally doesn't have integers?
> > JavaScript). My message was an attempt to get some information on where this
> > interpretation came from.
See my other mail.
> I tested two systems and showed they behaved a particular way. That
> does not imply that all systems behave that way. More importantly, it
> doesn't imply that by definition all conformant systems MUST behave
> that way.
Exactly.
> In particular, Markus tells me that PHP's JSON support does not behave
> this way.
Right. For PHP it depends on which platform it runs. The same is typically true for C/C++.
> The question is, according to the JSON WG (and presumably their
> forthcoming standard), is PHP's implementation non-conformant? Or is
> PHP's approach of using suitable native numbers just fine?
No, it is not and that won't change as such changes are explicitly out of scope for the revision of RFC4627.
> Looking a little more, I see Python's standard library fails test 2.
> It distinguishes doubles and ints.
>
> Looking a little more, I see a bunch of competing JSON libraries for
> C, C++, and Java. I'm not going to try to install and test them, but
> I see things like: JSON (JavaScript Object Notation) is a lightweight
> data-interchange format. It can represent integer, real number,
> string, an ordered sequence of value, and a collection of name/value
> pairs. -- http://jsoncpp.sourceforge.net/ I suspect with a couple
> hours (which I don't have right now) one might find that they all
> distinguish between ints and doubles. They seem to focus a lot on
> making it easy to re-constitute objects -- so the consumer is
> expecting something about the data being read, maybe even expecting an
> int32 in one place and an int16 in another. Statically typed
> languages have some challenges here that Python and PHP and JavaScript
> don't have....
>
> > It appears that the way to find out what anything in JSON means is to examine
> > JSON implementations and find out what they do. However, cat is apparently a
> > fully-compliant JSON parser, so even determining what JSON implementations
> > exist is not an easy task.
> >
> > peter
> >
> > PS: The IETF JSON working group is bogged down on how many Unicode surrogate
> > characters can dance on the top of a JSON string, so asking them for consensus
> > on anything might not be very useful.
>
> Well, I doubt it would hurt to ask them, if we did it clearly and
> politely, and they might even appreciate the change in topic.
Peter did that already and all answers I've seen so far confirm our interpretation. Here's the direct link to the thread:
http://www.ietf.org/mail-archive/web/json/current/thrd2.html#01211
--
Markus Lanthaler
@markuslanthaler
Received on Wednesday, 10 July 2013 14:41:30 UTC