JSON.stringify bere v úvahu metody toJSON

Četl jsem tento skvělý článek na JSON.stringify od Valeriho Karpova, když jsem objevil něco, co jsem předtím nevěděl.

Můžete použít JSON.stringify pro serializaci objektů a jejich uložení řekněme do localStorage . Ukázalo se, že JSON.stringify zkontroluje, zda objekt k serializaci obsahuje toJSON metoda. Pokud ano, použije tuto metodu k vyhodnocení výsledku serializace.

const zoo = {
  animals: {
    list: ['cat', 'dog', 'duck'],
    // toJSON will be called by JSON.stringify
    toJSON: () => {
      return ['🐱', '🐶', '🦆']
    }
  }
}

console.log(JSON.stringify(zoo, null, 2));

Zahrnutím toJSON můžete manipulovat s daty, která by měla jít do serializace. Tuto funkcionalitu můžete využít např. vyčistit protokoly a neukládat citlivé informace do databáze. Docela sladké. 👌

Pokud se chcete dozvědět více, můžete se podívat na MDN nebo se podívat na kapitolu Zkoumání JavaScriptu od Axela Rauschmayera.