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 型別表示轉換回原始物件。