JSON 类型表示

JSON 是一种方便且广泛使用的格式,用于序列化对象、数组、数字、字符串、布尔值和 null。JSON 不支持 JavaScript 允许的所有数据类型,意味着使用这些不兼容类型的 JavaScript 对象不能直接被序列化为 JSON。

JSON 的不兼容对象的 JSON 类型表示是一个等效的 JavaScript 对象,其属性经过编码,使得这些信息可以序列化为 JSON。对于兼容的数据类型,这通常具有与原始对象相同的属性,而不兼容的属性则被转换/序列化为兼容的类型。例如,原始对象中的缓冲区属性可能会在 JSON 类型表示中被 base64url 编码为字符串。

一个无法使用 JSON.stringify() 方法自动序列化为 JSON 的对象,可以定义一个名为 toJSON() 的返回原始对象的 JSON 类型表示的实例方法。JSON.stringify() 则会使用 toJSON() 来获取要序列化的对象,而不是原本的对象,就比如 PublicKeyCredential.toJSON()Performance.toJSON()

以这种方式序列化的 JSON 字符串是可以使用 JSON.parse() 反序列化回 JSON 类型表示对象的。通常来说,需要提供一个方法来转换 JSON 类型表示回原来的对象,如 PublicKeyCredential.parseCreationOptionsFromJSON()

In this article