Représentation de type JSON
JSON est un format pratique et largement utilisé pour sérialiser des objets, des tableaux, des nombres, des chaînes de caractères, des booléens et null. JSON ne prend pas en charge tous les types de données autorisés par JavaScript, ce qui signifie que les objets JavaScript utilisant ces types incompatibles ne peuvent pas être directement sérialisés en JSON.
La représentation de type JSON d'un objet incompatible avec JSON est un objet JavaScript équivalent dont les propriétés sont encodées de façon à ce que l'information puisse être sérialisée en JSON. Celle-ci possède généralement les mêmes propriétés que l'objet d'origine pour les types de données compatibles, tandis que les propriétés incompatibles sont converties/sérialisées en types compatibles. Par exemple, les propriétés de type tampon dans l'objet d'origine peuvent être encodées en chaînes de caractères au format base64url dans la représentation de type JSON.
Un objet qui ne peut pas être automatiquement sérialisé en JSON avec la méthode JSON.stringify() peut définir une méthode d'instance nommée toJSON() qui retourne la représentation de type JSON de l'objet d'origine.
JSON.stringify() utilisera alors toJSON() pour obtenir l'objet à sérialiser, au lieu de l'objet d'origine.
PublicKeyCredential.toJSON() et Performance.toJSON() sont des exemples de cette approche.
Une chaîne JSON sérialisée de cette façon peut être désérialisée en objet représentation de type JSON à l'aide de JSON.parse().
Il est courant de fournir une méthode de conversion, telle que PublicKeyCredential.parseCreationOptionsFromJSON(), pour convertir la représentation de type JSON en objet d'origine.