ホームページ > ウェブフロントエンド > jsチュートリアル > JSON.stringify がエラー オブジェクトの文字列化に失敗する理由とその修正方法

JSON.stringify がエラー オブジェクトの文字列化に失敗する理由とその修正方法

Patricia Arquette
リリース: 2024-11-29 21:53:10
オリジナル
497 人が閲覧しました

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

JSON.stringify: エラー オブジェクトを文字列化できません

Web ソケットを使用してエラーが発生した場合、多くの場合、エラー メッセージを渡すことが必要になります。最初は、JSON.stringify を使用するのが簡単な解決策のように見えますが、ネイティブ Error オブジェクトを適切に文字列化できません。

問題:

Error オブジェクトを文字列化しようとすると、結果が返されます。空のオブジェクト ({}) 内にあり、エラーの情報が存在しなかったことを示します。

原因:

問題は、Error オブジェクトのプロトタイプ プロパティ内にあります。 stack や message などの主要なプロパティには、列挙可能なフラグが false に設定されています。その結果、JSON.stringify はシリアル化プロセス中にこれらのプロパティをスキップし、空のオブジェクトが残ります。

解決策:

この動作を回避するには、手動で抽出する必要があります。 Object.getOwnPropertyNames を使用して、Error オブジェクトのプロパティを取得します。これらのプロパティを置換関数として JSON.stringify に渡して、エラー情報を含む JSON 文字列を作成できます。

JSON.stringify(err, Object.getOwnPropertyNames(err))
ログイン後にコピー

あるいは、列挙可能なプロパティを持つ独自のカスタム エラー オブジェクトを作成することもできます。 JSON.stringify.

によって正しく文字列化できるようになります。

以上がJSON.stringify がエラー オブジェクトの文字列化に失敗する理由とその修正方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート