Rumah > hujung hadapan web > tutorial js > Mengapa JSON.stringify Gagal Mengikat Objek Ralat dan Bagaimana Saya Boleh Membetulkannya?

Mengapa JSON.stringify Gagal Mengikat Objek Ralat dan Bagaimana Saya Boleh Membetulkannya?

Patricia Arquette
Lepaskan: 2024-11-29 21:53:10
asal
510 orang telah melayarinya

Why Does JSON.stringify Fail to Stringify Error Objects and How Can I Fix It?

JSON.stringify: Tidak Dapat Stringify Ralat Objek

Apabila bekerja dengan soket web dan menghadapi ralat, selalunya perlu menghantar mesej ralat. Pada mulanya, menggunakan JSON.stringify kelihatan seperti penyelesaian yang mudah, tetapi ia tidak menyelaraskan objek Ralat asli dengan betul.

Isu:

Percubaan untuk merangkai hasil objek Ralat dalam objek kosong ({}), menunjukkan bahawa maklumat ralat tidak ditangkap.

Punca:

Masalahnya terletak dalam sifat prototaip objek Ralat. Sifat utama seperti tindanan dan mesej mempunyai bendera terbilangnya ditetapkan kepada palsu. Akibatnya, JSON.stringify melangkau sifat ini semasa proses bersiri, meninggalkan anda dengan objek kosong.

Penyelesaian:

Untuk mengelakkan tingkah laku ini, anda perlu mengekstrak secara manual sifat objek Ralat menggunakan Object.getOwnPropertyNames. Sifat ini kemudiannya boleh diserahkan kepada JSON.stringify sebagai fungsi pengganti untuk mencipta rentetan JSON yang merangkumi maklumat ralat:

JSON.stringify(err, Object.getOwnPropertyNames(err))
Salin selepas log masuk

Sebagai alternatif, anda boleh mencipta objek ralat tersuai anda sendiri dengan sifat yang boleh dikira, membenarkan mereka dirangkai dengan betul oleh JSON.stringify.

Atas ialah kandungan terperinci Mengapa JSON.stringify Gagal Mengikat Objek Ralat dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan