On Nov 19, 2013, at 10:18 PM, Martin J. Dürst wrote:
> Hello Henry, others,
>
> On 2013/11/20 3:55, Henry S. Thompson wrote:
>> Allen Wirfs-Brock writes:
>>
>>> There can be no doubt that the most widely deployed JSON parsers are
>>> those that are built intp the browser javascript implementations.
>>> The ECMAScript 5 specification for JSON.parse that they implement
>>> says BOM is an illegal character. But what do the browser actually
>>> implement? This:
>>
>> No, try e.g. jsonviewer.stack.hu [1] (works in Chrome, Safari, Opera,
>> not in IE or Firefox)
>
> In Firefox, I got some garbled characters, in particular some question marks for each of the two bytes of the BOM and one question mark for the e-acute. Because of the type of the errors, I strongly suspect it is related to what we are trying to investigate, and so I don't think this can be taken as evidence one way or another.
>
> or feed [2] to www.jsoneditoronline.org (Use
>> Open/Url) (works in Chrome, IE, Firefox, ran out of time to test more).
>
> The fact that some libraries or Web sites accept a BOM for JSON isn't a proof that all (well, let's say the majority) accept a BOM.
Just to be clear about this. My tests directly tested JavaScript built-in JSON parsers WRT to BOM support in three major browsers. The tests directly invoked the built-in JSON.parse functions and directly passed to them a source strings that was explicitly constructed to contain a BOM code point . This was done to ensure that the all transport layers (and any transcodings they might perform) were bypassed and that we were actually testing the real built-in JSON parse functions.
Neither of the sites referenced about perform a comparable test. They take user inputed text when is then pass through whose knows what layers of browser and application preprocessing and then they present something derived from that original user input to a JSON parser. In both bases the actual parser does not appear to be the the built-in JavaScript JSON.parse function that I was testing.
json.view.stack.hu uses Ext.util.JSON.decode whose document describe it as "Modified version of Douglas Crockford"s json.js". In other words not the built-in JSON.parse function
www.jsoneditoronlineorg uses a library called JSONLint in preference to the built-in JSON.parse function. It does not conform to the ECMAScript 5 JSON.parse specification.
So testing using either of these sites say nothing relevant to about my observation concern BOM handling by the most widely deployed JSON parsers (the ones that are built into browser JavaScript implementations)
Allen