Rumah >hujung hadapan web >tutorial js >Mengapa JSON.stringify Mengembalikan Objek Kosong Apabila Mensiri Ralat?
Percubaan untuk mensirikan contoh ralat menggunakan JSON.stringify menghasilkan objek kosong. Tingkah laku ini timbul daripada deskriptor sifat tersembunyi bagi ralat.
Mengapa JSON.stringify Gagal:
Penerangan sifat untuk kejadian ralat ditetapkan dengan enumerable: false, menghalangnya sifat daripada dimasukkan dalam rentetan.
Meneroka Sifat dan Deskriptor:
const error = new Error('sample message'); const propertyNames = Object.getOwnPropertyNames(error); propertyNames.forEach(property => console.log(property, Object.getOwnPropertyDescriptor(error, property)));
Output:
stack { get: [Function], set: [Function], enumerable: false, configurable: true } arguments { value: undefined, writable: true, enumerable: false, configurable: true } type { value: 'custom message', writable: true, enumerable: false, configurable: true } message { value: 'custom message', writable: true, enumerable: false, configurable: true }
Penyelesaian Menggunakan Object.getOwnPropertyNames:
Untuk memasukkan sifat ralat dalam rentetan, gunakan JSON.stringify(err, Object.getOwnPropertyNames(err)). Ini memberikan akses kepada sifat yang tidak boleh dikira.
const serializedError = JSON.stringify(error, Object.getOwnPropertyNames(error));
Penyelesaian Tambahan:
Atas ialah kandungan terperinci Mengapa JSON.stringify Mengembalikan Objek Kosong Apabila Mensiri Ralat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!