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 };
}