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
    • 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 2 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 3 of 13 , Jul 20 8:46 AM
        • 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 4 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 5 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 6 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 7 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 8 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.