Представлення типу в 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 назад у вихідний об'єкт.