Loading ...
Sorry, an error occurred while loading the content.

Re: [json] json.js

Expand Messages
  • Peter Michaux
    Hi Douglas, At first glance it looks like it was much easier to modify the old file so that it didn t affect any built in prototypes and brake for-in loops. Do
    Message 1 of 13 , Oct 29, 2006
    • 0 Attachment
      Hi Douglas,

      At first glance it looks like it was much easier to modify the old
      file so that it didn't affect any built in prototypes and brake for-in
      loops. Do you think that you would be able to make the old file still
      available also but with a comment about dates and modified so it
      doesn't change any prototypes? This way people like me can start using
      JSON in existing apps without braking their code. I am lucky I
      downloaded the old file before it disappeared!

      Peter



      On 10/29/06, Douglas Crockford <douglas@...> wrote:
      >
      > I revised json.js to clarify specification issues in the proposed
      > ECMAScript 4th Edition standard.
      >
      > It now encodes dates as formal ISO strings. By adding a custom
      > toJSONString method to a date object, other representations can be
      > obtained.
      >
      > Custom toJSONString methods can also be added to any object or array.
      >
      > http://www.json.org/json.js
    • Joshua Raphael Fuentes
      ... From: Douglas Crockford To: json@yahoogroups.com Sent: Monday, October 30, 2006 7:08:33 AM Subject: [json] json.js I revised
      Message 2 of 13 , Oct 29, 2006
      • 0 Attachment
        ----- Original Message ----
        From: Douglas Crockford <douglas@...>
        To: json@yahoogroups.com
        Sent: Monday, October 30, 2006 7:08:33 AM
        Subject: [json] json.js













        I revised json.js to clarify specification issues in the proposed

        ECMAScript 4th Edition standard.



        It now encodes dates as formal ISO strings. By adding a custom

        toJSONString method to a date object, other representations can be

        obtained.



        Custom toJSONString methods can also be added to any object or array.



        http://www.json org/json. js














        <!--

        #ygrp-mlmsg {font-size:13px;font-family:arial,helvetica,clean,sans-serif;}
        #ygrp-mlmsg table {font-size:inherit;font:100%;}
        #ygrp-mlmsg select, input, textarea {font:99% arial,helvetica,clean,sans-serif;}
        #ygrp-mlmsg pre, code {font:115% monospace;}
        #ygrp-mlmsg * {line-height:1.22em;}
        #ygrp-text{
        font-family:Georgia;
        }
        #ygrp-text p{
        margin:0 0 1em 0;
        }
        #ygrp-tpmsgs{
        font-family:Arial;
        clear:both;
        }
        #ygrp-vitnav{
        padding-top:10px;
        font-family:Verdana;
        font-size:77%;
        margin:0;
        }
        #ygrp-vitnav a{
        padding:0 1px;
        }
        #ygrp-actbar{
        clear:both;
        margin:25px 0;
        white-space:nowrap;
        color:#666;
        text-align:right;
        }
        #ygrp-actbar .left{
        float:left;
        white-space:nowrap;
        }
        .bld{font-weight:bold;}
        #ygrp-grft{
        font-family:Verdana;
        font-size:77%;
        padding:15px 0;
        }
        #ygrp-ft{
        font-family:verdana;
        font-size:77%;
        border-top:1px solid #666;
        padding:5px 0;
        }
        #ygrp-mlmsg #logo{
        padding-bottom:10px;
        }

        #ygrp-vital{
        background-color:#e0ecee;
        margin-bottom:20px;
        padding:2px 0 8px 8px;
        }
        #ygrp-vital #vithd{
        font-size:77%;
        font-family:Verdana;
        font-weight:bold;
        color:#333;
        text-transform:uppercase;
        }
        #ygrp-vital ul{
        padding:0;
        margin:2px 0;
        }
        #ygrp-vital ul li{
        list-style-type:none;
        clear:both;
        border:1px solid #e0ecee;
        }
        #ygrp-vital ul li .ct{
        font-weight:bold;
        color:#ff7900;
        float:right;
        width:2em;
        text-align:right;
        padding-right:.5em;
        }
        #ygrp-vital ul li .cat{
        font-weight:bold;
        }
        #ygrp-vital a {
        text-decoration:none;
        }

        #ygrp-vital a:hover{
        text-decoration:underline;
        }

        #ygrp-sponsor #hd{
        color:#999;
        font-size:77%;
        }
        #ygrp-sponsor #ov{
        padding:6px 13px;
        background-color:#e0ecee;
        margin-bottom:20px;
        }
        #ygrp-sponsor #ov ul{
        padding:0 0 0 8px;
        margin:0;
        }
        #ygrp-sponsor #ov li{
        list-style-type:square;
        padding:6px 0;
        font-size:77%;
        }
        #ygrp-sponsor #ov li a{
        text-decoration:none;
        font-size:130%;
        }
        #ygrp-sponsor #nc {
        background-color:#eee;
        margin-bottom:20px;
        padding:0 8px;
        }
        #ygrp-sponsor .ad{
        padding:8px 0;
        }
        #ygrp-sponsor .ad #hd1{
        font-family:Arial;
        font-weight:bold;
        color:#628c2a;
        font-size:100%;
        line-height:122%;
        }
        #ygrp-sponsor .ad a{
        text-decoration:none;
        }
        #ygrp-sponsor .ad a:hover{
        text-decoration:underline;
        }
        #ygrp-sponsor .ad p{
        margin:0;
        }
        o {font-size:0;}
        .MsoNormal {
        margin:0 0 0 0;
        }
        #ygrp-text tt{
        font-size:120%;
        }
        blockquote{margin:0 0 0 4px;}
        .replbq {margin:4;}
        -->






        cool...now JSON is getting bigger and better. I use json, and have great faith in it.. it's nice that can now consider date data types





        [Non-text portions of this message have been removed]
      • Martin Cooper
        ... I agree with Peter. Sure, these methods might become part of the language next year, but there should be a way for people to use the code today without
        Message 3 of 13 , Oct 30, 2006
        • 0 Attachment
          On 10/29/06, Peter Michaux <petermichaux@...> wrote:
          >
          > Hi Douglas,
          >
          > At first glance it looks like it was much easier to modify the old
          > file so that it didn't affect any built in prototypes and brake for-in
          > loops. Do you think that you would be able to make the old file still
          > available also but with a comment about dates and modified so it
          > doesn't change any prototypes? This way people like me can start using
          > JSON in existing apps without braking their code. I am lucky I
          > downloaded the old file before it disappeared!


          I agree with Peter. Sure, these methods might become part of the language
          next year, but there should be a way for people to use the code today
          without breaking other existing code.

          It would be very straightforward to define the functions in a namespace of
          their own (e.g. json), and then have a conditional block that also makes
          them available according to the standard, for people who want that.

          For example, something like:

          var json = {};
          json.arrayToJSONString = function() { ... }
          json.booleanToJSONString = function() { ... }
          ...
          if (typeof jsonExcludeStandard != "undefined") {
          Array.prototype.toJSONString = json.arrayToJSONString;
          Boolean.prototype.toJSONString = json.booleanToJSONString;
          ...
          }

          This will preserve the existing functionality by default. However, if I want
          to exclude the functions that modify standard prototypes, all I need to do
          is define jsonExcludeStandard before pulling in json.js.

          How about it?

          --
          Martin Cooper



          Peter
          >
          >
          >
          > On 10/29/06, Douglas Crockford <douglas@...> wrote:
          > >
          > > I revised json.js to clarify specification issues in the proposed
          > > ECMAScript 4th Edition standard.
          > >
          > > It now encodes dates as formal ISO strings. By adding a custom
          > > toJSONString method to a date object, other representations can be
          > > obtained.
          > >
          > > Custom toJSONString methods can also be added to any object or array.
          > >
          > > http://www.json.org/json.js
          >
          >
          >
          > Yahoo! Groups Links
          >
          >
          >
          >
          >


          [Non-text portions of this message have been removed]
        • Douglas Crockford
          Alistair Braidwood suggested a way to make toJSONString 25% faster by improving the way it handles commas. http://www.JSON.org/json.js
          Message 4 of 13 , Jun 11, 2007
          • 0 Attachment
            Alistair Braidwood suggested a way to make toJSONString 25% faster by
            improving the way it handles commas.

            http://www.JSON.org/json.js
          • Douglas Crockford
            The json.js reference implementation now produces date strings in the ISO Z format, in anticipation of the addition of Date.prototype.toISOString to
            Message 5 of 13 , Jul 20, 2007
            • 0 Attachment
              The json.js reference implementation now produces date strings in the
              ISO Z format, in anticipation of the addition of
              Date.prototype.toISOString to ECMAScript.

              http://www.JSON.org/json.js
            • Douglas Crockford
              I changed the way that json.js calls the hasOwnProperty method. A design flaw in JavaScript causes hasOwnProperty to fail when an object contains a property
              Message 6 of 13 , Aug 5, 2007
              • 0 Attachment
                I changed the way that json.js calls the hasOwnProperty method. A
                design flaw in JavaScript causes hasOwnProperty to fail when an object
                contains a property called "hasOwnProperty".

                http://json.org/json.js
              • Douglas Crockford
                The toJSONString methods can now take an optional whitelist parameter, an array of strings. It is used to select the properties that will be included in the
                Message 7 of 13 , Aug 19, 2007
                • 0 Attachment
                  The toJSONString methods can now take an optional whitelist parameter,
                  an array of strings. It is used to select the properties that will be
                  included in the JSON text.

                  http://www.json.org/json.js
                • Julian Tonti-Filippini
                  I wanted to modify json.js to add RegExp support so I added the following: RegExp.prototype.toJSONString = function () { return this.toString().toJSONString();
                  Message 8 of 13 , Oct 3, 2007
                  • 0 Attachment
                    I wanted to modify json.js to add RegExp support so I added the following:

                    RegExp.prototype.toJSONString = function () {
                    return this.toString().toJSONString();
                    };

                    ...and found that it didn't work under Firefox because the typeof
                    RegExp is 'function' rather than 'object'. This required modification
                    of the switch in Object.prototype.toJSONString to add a fall-through
                    case for 'function'.

                    My gut tells me that there's something criminally wrong about does
                    this. Can someone tell me why?

                    - Julian
                  • Douglas Crockford
                    A new version of json.js is available. It corrects a problem in parseJSON where it was possible to have the contents of one of the caller s variables included
                    Message 9 of 13 , Oct 5, 2007
                    • 0 Attachment
                      A new version of json.js is available. It corrects a problem in
                      parseJSON where it was possible to have the contents of one of the
                      caller's variables included in the decoded value.

                      http://www.JSON.org/json.js
                    • Douglas Crockford
                      A design error in Firefox could allow parseJSON to include an eval function object in the resulting JSON object. This situation will now raise an exception.
                      Message 10 of 13 , Oct 10, 2007
                      • 0 Attachment
                        A design error in Firefox could allow parseJSON to include an eval
                        function object in the resulting JSON object. This situation will now
                        raise an exception.

                        http://www.JSON.org/json.js
                      Your message has been successfully submitted and would be delivered to recipients shortly.