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

Re: [json] json.js

Expand Messages
  • 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 1 of 13 , Oct 30, 2006
      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 2 of 13 , Jun 11, 2007
        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 3 of 13 , Jul 20, 2007
          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 4 of 13 , Aug 5 1:25 PM
            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 5 of 13 , Aug 19 7:58 AM
              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 6 of 13 , Oct 3, 2007
                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 7 of 13 , Oct 5, 2007
                  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 8 of 13 , Oct 10, 2007
                    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.