Представлення типу в JSON
JSON – це зручний і широко вживаний формат для серіалізації об'єктів, масивів, чисел, рядків, булевих значень і null.
JSON підтримує не всі типи даних, дозволені JavaScript, тобто об'єкти JavaScript, які використовують ці несумісні типи, не можуть бути безпосередньо серіалізовані в JSON.
Представлення типу в JSON – це сумісний з JSON об'єкт, який є рівносильним об'єктом JavaScript, властивості якого закодовані так, що інформацію можна серіалізувати в JSON. Зазвичай такий об'єкт має такі ж властивості, що й вихідний об'єкт, у випадку сумісних типів даних, а несумісні властивості перетворюються чи серіалізуються в сумісні типи. Наприклад, властивості вихідного об'єкта, що містять буфери, у представленні типу в JSON можуть бути закодовані в рядки згідно з алгоритмом base64url.
Об'єкт, який не може бути автоматично серіалізований у JSON за допомогою методу JSON.stringify(), може мати метод примірника під назвою toJSON(), який повертає представлення типу в JSON вихідного об'єкта.
Тоді JSON.stringify() використовує toJSON() для отримання об'єкта, який буде рядковано замість вихідного об'єкта.
PublicKeyCredential.toJSON() і Performance.toJSON() є прикладами такого підходу.
Рядок JSON, серіалізований у такий спосіб, може бути десеріалізований назад в об'єкт представлення типу в JSON за допомогою JSON.parse().
Заведено надавати метод-перетворювач, такий як PublicKeyCredential.parseCreationOptionsFromJSON(), для перетворення представлення типу в JSON назад у вихідний об'єкт.