JSON 类型表示
JSON 是一种方便且广泛使用的格式,用于序列化对象、数组、数字、字符串、布尔值和 null。 JSON 不支持 JavaScript 允许的所有数据类型,这意味着使用这些不兼容类型的 JavaScript 对象无法直接序列化为 JSON。
JSON 不兼容对象的JSON 类型表示是一个等效的 JavaScript 对象,其属性已编码,以便这些信息可以被序列化为 JSON。这通常与原始对象的兼容数据类型具有相同的属性,而不兼容的属性会被转换为/序列化为兼容类型。例如,原始对象中的 buffer 属性可能在 JSON 类型表示中被 base64url 编码为字符串。
无法使用 JSON.stringify() 方法自动序列化为 JSON 的对象可以定义一个名为 toJSON() 的实例方法,该方法返回原始对象的JSON 类型表示。然后,JSON.stringify() 将使用 toJSON() 来获取要字符串化的对象,而不是原始对象。 PublicKeyCredential.toJSON() 和 Performance.toJSON() 是这种方法的示例。
以这种方式序列化的 JSON 字符串可以使用 JSON.parse() 反序列化回JSON 类型表示对象。通常会提供一个转换器方法,例如 PublicKeyCredential.parseCreationOptionsFromJSON(),将JSON 类型表示转换回原始对象。