Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #38632

JSON, definitions, standards - things I do not understand

Path csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From retired developer <retired.developer@protonmail.com>
Newsgroups comp.lang.javascript
Subject JSON, definitions, standards - things I do not understand
Date Tue, 4 Aug 2020 03:33:46 +0200
Lines 100
Message-ID <hors7qF9m1cU1@mid.individual.net> (permalink)
Mime-Version 1.0
Content-Type text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding 7bit
X-Trace individual.net ffbwzXUsXZ6myohxRUsaAQ+5jLEFyYIC7isioxrC7aFx2L0J4U
Cancel-Lock sha1:528zeD80/ANeb66xwbIMhEQ2s6A=
X-Mozilla-News-Host news://news.individual.de:119
User-Agent Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0
Content-Language en-US
Xref csiph.com comp.lang.javascript:38632

Show key headers only | View raw


Hello,

I hope this is the right place for my questions, if not, please redirect 
me to the proper group.
Thanks.

Beside JavaScript, I use another programing language too where JSON is 
supported.

During a data import (data in JSON format) I found a typo in my imported 
data, but the import was without any error message.
What the heck is that, I thought, and started some digging...

Here are the results, and I'm stumped.

The html file (see below) was opened with Google Chrome.
The output (see below too) looks a little bit buggy, but I think, the 
staff at Google will know, what they do, so there must be some kind of 
explanation for this output.

Is there someone here who can enlighten me?

Thank you,
Julius

--- the html-file --------------------------
<!DOCTYPE html>
<html>
<script>
function jsonThings() {
   var arr1, arr2, str, tmp;
   var i, j;

   str = "[ 11,, null]" ; // the ,, was a typo
   try { arr1 = JSON.parse(str); add(str,"Must be a coincidence..."); }
   catch(e) { add(str,e.message); }

   arr2 = [11,,null];
   add(JSON.stringify(arr2),"empty field (,,) is parsed!");

   size = arr2.length;
   add("array-size: "+size, "nonexistent (undefined) items are counted");

   tmp = "";
   j = 0;
   for (i=0; i<size; i++) { tmp += i + " " + typeof(arr2[i]) + "<br>"; j++;}
   add(tmp, "FOR loop is executed "+j+" times");

   tmp = "";
   j=0;
   for (i in arr2) { tmp += i + " " + typeof(arr2[i]) + "<br>"; j++; }
   add(tmp,"The loop is executed "+j+" times!");

   tmp = arr2[0];
   for (i=1; i<size; i++) { tmp += ","+arr2[i]; }
   add(JSON.stringify(arr2),"["+tmp+"] Stringify vs. content. Which one 
is correct?");

}

function add(str,msg) {
   var obj = document.getElementById("msg");
   var itm = document.createElement("P");
   itm.innerHTML = str + " --> " + msg;
   obj.appendChild(itm)
}
</script>

<body onload="jsonThings();">
<div id="msg" />
</body>
</html>
--- end-of-html-file --------------------------------------

--- the-output --------------------------
[ 11,, null] --> Unexpected token , in JSON at position 5

[11,null,null] --> empty field (,,) is parsed!

array-size: 3 --> nonexistent (undefined) items are counted

0 number
1 undefined
2 object
--> FOR loop is executed 3 times

0 number
2 object
--> The loop is executed 2 times!

[11,null,null] --> [11,undefined,null] Stringify vs. content. Which one 
is correct?
--- end-of-output -------------------------------------


-- 
An old Windows has old security holes.
A new Windows has new security holes.
Another OS has other security holes.
For safety you must care yourself.

Back to comp.lang.javascript | Previous | Next — Next in thread | Find similar | Unroll thread


Thread

JSON, definitions, standards - things I do not understand retired developer <retired.developer@protonmail.com> - 2020-08-04 03:33 +0200
  Re: JSON, definitions, standards - things I do not understand Julio Di Egidio <julio@diegidio.name> - 2020-08-04 02:07 -0700
    Re: JSON, definitions, standards - things I do not understand retired developer <retired.developer@protonmail.com> - 2020-08-04 12:54 +0200
      Re: JSON, definitions, standards - things I do not understand Julio Di Egidio <julio@diegidio.name> - 2020-08-04 06:00 -0700
      Re: JSON, definitions, standards - things I do not understand Julio Di Egidio <julio@diegidio.name> - 2020-08-04 06:25 -0700
      Re: JSON, definitions, standards - things I do not understand Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2020-08-05 10:15 +0200
        Re: JSON, definitions, standards - things I do not understand Julio Di Egidio <julio@diegidio.name> - 2020-08-05 02:30 -0700

csiph-web