JSONエスケープ / アンエスケープ
JSON文字列のエスケープとアンエスケープ - 特殊文字をエスケープシーケンスに変換
入力
出力
JSONエスケープとは?
JSON文字列では、二重引用符、バックスラッシュ、改行、タブ、制御文字など特定の文字をエスケープする必要があります。エスケープはこれらを\"、\\、\n、\tなどのシーケンスに変換します。JSON仕様でエスケープが必要な文字が定義されています。アンエスケープは逆を行い、これらのシーケンスを実際の文字に戻します。
このツールにはエスケープとアンエスケープの2つのモードがあります。上部で切り替えられます。どちらもブラウザ内で動作し、サーバーには何も送信されません。
このツールの使い方
モードを選択
特殊文字をエスケープシーケンスに変換するにはエスケープ、元に戻すにはアンエスケープを選択します。
入力を貼り付け
テキストを左のエディターに貼り付けます。生の文字列、JSON文字列値、または完全なJSONドキュメントを貼り付けられます。必要に応じてサンプルまたはアップロードを使用してください。
結果をコピー
右のパネルは自動的に更新されます。<strong>コピー</strong>または<strong>ダウンロード</strong>で結果を取得します。エスケープされたJSON文字列をオブジェクトにパースするには、文字列をJSONにを試してください。
JSONエスケープの例
エスケープは特殊文字をエスケープシーケンスに変換します。通信テーマの例:
生の入力(改行付き)
エスケープされた出力
エスケープが重要な場面
JSON文字列を別のJSON文字列に埋め込む場合、または文字列を期待するデータベースフィールドにJSONを保存する場合、エスケープにより内側の引用符やバックスラッシュが構造を壊さないようにします。プログラムでJSONを構築する場合、JSON.stringify()が自動的にエスケープを処理します。このツールは手動編集や、ログやAPIからの事前エスケープされた文字列を扱う場合に便利です。
二重エスケープされた文字列(例:JSONを文字列として返すAPI)を受け取り、実際のJSONを取得する必要がある場合、アンエスケープが便利です。文字列をJSONにツールはエスケープされた文字列を直接パースできます。
よくある質問
どの文字がエスケープされますか?
JSONでは:" → \"、\ → \\、改行 → \n、タブ → \t、復帰 → \r、制御文字 → \uXXXX。完全なリストはRFC 8259を参照してください。
完全なJSONと文字列の両方で動作しますか?
両方です。エスケープモードでは、入力全体が文字列として扱われエスケープされます。アンエスケープモードでは、エスケープシーケンスが元に戻されます。JSON文字列をオブジェクトにパースするには、文字列をJSONにを使用してください。
データはどこかに送信されますか?
いいえ。処理はブラウザ内で行われます。
Unicode文字はどうですか?
基本BMP外のUnicodeは\uXXXX(またはサロゲートペア)としてエスケープできます。ツールは標準のJSONエスケープ規則に従います。
アンエスケープが必要なのはいつですか?
JSONが文字列として保存または送信される場合(例:データベース、またはJSONを別の文字列でラップするAPIレスポンス)。外側の層がエスケープを追加し、アンエスケープでそれを削除して内側のJSONをパースできます。
関連ツール
JSON文字列のエスケープ規則はRFC 8259にあります。MDNでJavaScriptのJSONを解説しています。JSON仕様でエスケープシーケンスが定義されています。パースについてはJSON.parse()とJSON.stringify()を参照してください。jqツールはコマンドラインでJSONを処理します。