viernes, 14 de septiembre de 2012

Propiedad toJSON de un objeto Javascript

A la hora de serializar un objeto javascript con JSON utilizando la función
JSON.stringify(value[, replacer [, space]]) 
aparte de poder utilizar el "replacer" para "customizar" (personalizar) la salida JSON de ese objeto podemos incluir la función (propiedad) toJSON en el propio objeto. El parseador la verá y hará uso de ella para crear el JSON. Esta propiedad no debe devolver el string JSON ya creado sino que deberá devolver qué propiedades del objeto se deben o no incluir en el string JSON final. Si, por ejemplo, sólo queremos que aparezca la propiedad "foo" del objeto en nuestra serialización haríamos:
     MiObjeto.prototype.toJSON = function() {
          return { foo: this.foo };
     };
Si queremos varias propiedades pero no todas, podríamos escribir:
     MiObjeto.prototype.JSON = function() {
          return { prop1: this.prop1,
                       prop2: this.prop2,
                       propQueEsArray: this.propQueEsArray };
     }