嘗試使用 JSON.stringify 序列化錯誤訊息時,您可能會遇到意外結果:一個空物體。此行為源自於 Error 物件不可枚舉的屬性,從而阻止它們包含在字串化中。
雖然 Error.prototype.toString 等標準方法提供的資訊有限,但使用 JSON.stringify 中的 Replacer 函數刪除函數屬性會遇到異常,它會跳過物件的循環。
解決方案在於從Error 物件傳遞一個可枚舉屬性名稱數組,如下所示JSON.stringify 的第二個參數:
JSON.stringify(err, Object.getOwnPropertyNames(err))
此解決方法有效地在字串化過程中包含必要的錯誤屬性,從而提供所需的結果。需要注意的是,此方法依賴瀏覽器,可能不適用於所有環境。
以上是為什麼 JSON.stringify 無法序列化錯誤對象,如何修復?的詳細內容。更多資訊請關注PHP中文網其他相關文章!