Every object has a method toJSON()
, which is invoked when the object should be serialize using JSON.stringify()
.
From MDN article on JSON.stringify():
If an object being stringified has a property named toJSON
whose value
is a function, then the toJSON()
method customizes JSON
stringification behavior: instead of the object being serialized, the
value returned by the toJSON()
method when called will be serialized
The following example creates a different serialization function, which will exclude the _id
:
var Player_ID = 0;
function Player(name) {
this._name = name;
this._id = "Player"+(Player_ID++);
this.toJSON = function() {
return {
_name: this._name
};
};
};
var newPlayer = new Player('Name 1');
console.log(JSON.stringify(newPlayer)); // prints {"_name": 'Name 1'}
Check the working demo.