JSONアンエスケープ
JSON文字列を読みやすいテキストにブラウザ内でアンエスケープ。\n・\t・\"・\\・\uXXXX を、囲み引用符の有無にかかわらずデコード。完全プライベート、アップロードなし。
オプション
JSONアンエスケープとは?
JSONアンエスケープはJSONエスケープの逆です。エスケープシーケンス(\n、\t、\"、\\、\uXXXX)だらけの文字列を受け取り、それぞれをそれが表す文字に戻して、元のテキストを復元します。エスケープが文字列をJSONドキュメント内に保存できるよう安全にするのに対し、アンエスケープは保存された文字列を再び読めるようにします。
その必要性はデバッグやデータ作業で絶えず現れます。構造化ログからフィールドをコピーすると、本当のメッセージを隠す \n と \" だらけ。アンエスケープすると実際の複数行テキストが現れます。APIがリクエストボディを文字列として保存し(JSON-in-JSON)、内側のオブジェクトを読む必要があるとき、アンエスケープが {\"a\":1} を {"a":1} に戻します。レガシーシステムが、すべてのアクセントが \uXXXX になったASCIIセーフ出力を吐き出したとき、アンエスケープが café や résumé を復元します。いずれの場合も、データは技術的には無傷ですが、デコードされるまで読めません。
このツールはそのデコード経路のために3つの利点を備えて作られています。第一に、囲み引用符に寛容です。完全なリテラルでも、エスケープ済み本文だけでも貼り付ければ、正しく処理します。エスケープ済み文字列は通常、文脈から切り離してコピーされるからです。第二に、\uXXXX を正しくデコードし、サロゲートペアを絵文字のような適切な追加面文字に結合します。これは準拠したJSONパーサーと同一なので、シリアライザーでエスケープされたものは完璧にラウンドトリップします。第三に、100%ブラウザ内で実行されるので、デコードするログフィールドやペイロード(個人情報や機密情報をよく含む)がサーバーに届くことはありません。後で再エスケープするには当社のJSONエスケープツールを、デコード済みJSONを検証するにはJSONフォーマッターをご覧ください。
// Escaped input (copied from a log, quotes optional)
User said: \"it works!\"\nSession ended.
// Unescaped output — readable again
User said: "it works!"
Session ended.
// \uXXXX and surrogate pairs decode too
caf\u00e9 \ud83d\ude00 -> café 😀
// JSON-in-JSON
{\"a\":1} -> {"a":1} 主な機能
JSONエスケープの完全デコード
JSONエスケープの全集合(\n \r \t \b \f \" \\ \/ と \uXXXX)を本物の文字へ、準拠したJSONパーサーと同一にデコードします。シリアライザーがエスケープしたものはバイト単位で戻ってきます。
引用符は任意
囲み引用符付きの完全な文字列リテラルでも、引用符なしのエスケープ済み本文だけでも貼り付けられます。ツールがどちらかを検出して正しくデコードします。ログやドキュメントの途中からコピーした文字列に最適です。
正しいUnicodeと絵文字
\uXXXX エスケープはそのUnicode文字にデコードされ、連続するサロゲートエスケープは正しい追加面文字に結合されます。\ud83d\ude00 は 😀 に、\u00e9 は é になります。コードポイントが壊れることはありません。
明確なエラー報告
不正な入力(認識されない文字の前の単独バックスラッシュや、不均衡な引用符)は、静かにゴミを生成するのではなく明示的なエラーバナーを表示するので、何を修正すべきか正確にわかります。
ラウンドトリップ検証のためのスワップ
1つの「方向を切り替え」ボタンでその場でエスケープモードに反転し、デコード済みテキストを再エンコードするので、結果を信用する前にアンエスケープ → エスケープが元の文字列を返すことを確認できます。
100%ブラウザ内処理のプライバシー
すべてのデコードがクライアントサイドで実行されます。アンエスケープするログフィールドやペイロード(多くは個人情報や機密情報を含む)がブラウザを離れることはありません。ネットワークタブで確認できます。貼り付け時のリクエストはゼロです。
例
ログからコピーしたエスケープ済み文字列
"User said: \"it works!\"\nSession ended."
\" と \n を含むJSONエスケープ済みのログフィールドです。アンエスケープすると、実際の引用符を含む本物の2行メッセージ(記録されたそのまま)が読めます。
JSON-in-JSONペイロードを読む
{\"event\":\"signup\",\"user\":{\"id\":42}} エスケープ済み文字列として保存された内側のJSONオブジェクトです。アンエスケープすると本物のJSONが現れ、読んだり再パースしたりできます。囲み引用符は不要で、自動的に追加されます。
\uXXXX Unicodeエスケープをデコード
caf\u00e9 \ud83d\ude00 r\u00e9sum\u00e9
レガシーシステム由来のASCIIセーフなエスケープです。アンエスケープすると \u00e9 が é に、サロゲートペア \ud83d\ude00 が 😀 に戻ります。
複数行スニペットを復元
function greet(name) {\n return \"Hi \" + name;\n} 1つのJSON文字列に平坦化されたコードスニペットです。アンエスケープすると本物の改行が復元され、再び読みやすく実行可能になります。
使い方
- 1
エスケープ済み文字列を貼り付ける
JSONエスケープ済みの文字列を、囲みの二重引用符あり・なしのどちらでも入力または貼り付けます。デコード済みテキストが即座に表示されます。「例を読み込む」をクリックすると、エスケープ済みのログ行や \uXXXX エンコードされた文字列などのサンプルを試せます。
- 2
デコード済み出力を読む
エスケープシーケンスが本物の文字になります。\n は改行に、\" は引用符に、\uXXXX はUnicodeになります。入力が不正な形式の場合、エラーバナーが問題を説明するので、問題のあるバックスラッシュを修正できます。
- 3
結果をコピーまたは検証する
「コピー」をクリックして読みやすいテキストを取得するか、JSONフォーマッターに送って検証します。「方向を切り替え」をクリックするとその場で再エスケープし、ラウンドトリップが元の文字列と一致することを確認できます。
よくあるデコードの落とし穴
\q や \x41 のような無効なエスケープ
JSONが認識するのは \n \r \t \b \f \" \\ \/ と \uXXXX だけです。それ以外の前のバックスラッシュ(\q やC言語風の \x41)は有効なエスケープではなく、デコードは失敗します。\x41 は \u0041 に置き換え、リテラルのつもりだった余分なバックスラッシュは取り除いてください(リテラルなバックスラッシュは \\ と書く必要があります)。
value: \q and \x41 // \q and \x hex are not valid JSON escapes -> error
value: \\q and \u0041 // literal backslash doubled; hex written as \u -> decodes
引用符なし入力での不均衡な引用符
本文だけ(外側の引用符なし)を貼り付けると、ツールはデコード前にそれを引用符で囲みます。本文自体にエスケープされていない二重引用符が含まれていると、囲み処理が壊れデコードは失敗します。内側の引用符を \" としてエスケープするか、完全に引用符で囲んだリテラルを貼り付けてください。
say "hi" there // interior unescaped " breaks auto-wrapping -> error
say \"hi\" there // interior quotes escaped -> decodes to: say "hi" there
二重化されなかったリテラルなバックスラッシュを期待する
入力中の単独のバックスラッシュは、エスケープの開始として解釈されます。実際にはリテラルなバックスラッシュが欲しかった場合(例:Windowsのパス)、それは \\ として二重化されて現れる必要があります。普通の文字の前の単独 \ は無効なエスケープのエラーを引き起こします。
path: C:\Users\Alice // \U and \A are invalid escapes -> error
path: C:\\Users\\Alice // doubled backslashes -> decodes to C:\Users\Alice
よくある使用例
- 構造化ログフィールドのデコード
- JSONログ行から \n と \" だらけのメッセージフィールドをコピーしてアンエスケープし、エスケープシーケンスを目を凝らして見る代わりに、出力されたそのままの本物の複数行メッセージを読みます。
- JSON-in-JSONペイロードを読む
- エスケープ済み文字列フィールドとして保存された内側のJSONオブジェクトを本物のJSONに戻し、読んだりパーサーに貼り付けたりできます。Webhookエンベロープや監査ログでよく見られます。
- ASCIIセーフ出力からUnicodeを復元
- レガシーシステムの \uXXXX だらけの出力をアクセント付き文字・CJK文字・絵文字に戻し、純粋なASCIIに強制されたデータの人が読める形を復元します。
- コードスニペットの平坦化を戻す
- 1つのJSON文字列に折りたたまれたスクリプトやクエリ(すべての改行が \n)を、適切に整形された複数行の読みやすいコードに戻します。
- 二重エンコードされたデータのデバッグ
- 値が \\n や \\\" のように見えるとき、一度アンエスケープして、上流で誤って2回エスケープされていないか調べ、生成側を修正します。よくある連携バグです。
- APIエラーメッセージの検査
- 多くのAPIは、JSONエンベロープ内のエスケープ済み文字列としてエラー詳細を返します。メッセージをアンエスケープして、エスケープシーケンスの陰に隠れたスタックトレースやネストされたペイロードを読みます。
技術的な詳細
- デコードアルゴリズム
- ツールは入力をJSON文字列としてパースします。すでに二重引用符で囲まれていればそのままデコードし、そうでなければ生の入力を先に引用符で囲むので、引用符なしのエスケープ済み本文でもデコードできます。認識される各エスケープ(\n \r \t \b \f \" \\ \/ \uXXXX)はその文字にマッピングされます。これは準拠したJSONパーサーを反映しており、シリアライザーでエスケープされた任意の文字列が正確な元の形に戻ることを保証します。
- サロゲートペアの再構築
- \uXXXX エスケープは1つのUTF-16コード単位を生みます。上位サロゲート(\uD800–\uDBFF)の直後に下位サロゲート(\uDC00–\uDFFF)が続くとき、2つは基本多言語面を超える1つのコードポイントに結合されます。よって \ud83d\ude00 は、壊れた2つの半分ではなく、1つの文字 😀 にデコードされます。
- 検証とエラー処理
- 入力に無効なエスケープ(認識されない文字が続くバックスラッシュや、不正な形式の \u シーケンス)や、囲み処理を壊す不均衡な引用符が含まれる場合、デコードはきれいに失敗し、破損した出力を吐き出す代わりにエラーバナーが表示されます。有効な入力は常に正確なデコード済み文字列を生成し、無効な入力が紛らわしい部分的な結果を生むことは決してありません。
ベストプラクティス
- 引用符あり・なしのどちらでも貼り付け可能
- 囲み引用符を切り取る時間を無駄にしないでください。ツールは "hello\nworld" と hello\nworld を同一にデコードするので、コピーしたものをそのまま(より大きなドキュメントの途中から取り出した断片を含めて)貼り付けて結果を読めます。
- 一度アンエスケープし、二重エンコードを確認する
- デコード済み出力にまだ \n のようなバックスラッシュシーケンスが見える場合、元は上流で二重エスケープされていました。もう一度アンエスケープして確認し、繰り返しのデコードに頼るのではなく、生成側が1回だけエスケープするよう修正します。
- デコード済みJSONを検証する
- JSON-in-JSONペイロードをアンエスケープした後、結果を当社のJSONフォーマッターに通して、有効であることを確認し整形します。アンエスケープはテキストを復元し、フォーマッターは構造を確認します。
- スワップでラウンドトリップを検証する
- 「方向を切り替え」をクリックしてデコード済みテキストを再エスケープし、開始時の文字列と一致するか確認します。不一致は、不正な形式の入力や予期しないエスケープを指し示し、問題が伝播する前にデータの問題を表面化させます。
よくある質問
このJSONアンエスケープツールは何をしますか?
囲みの二重引用符を含める必要がありますか?
私のデータはどこかにアップロードされますか?
なぜ「無効なエスケープシーケンス」エラーが出るのですか?
文字列として保存されたJSONオブジェクト(JSON-in-JSON)を読むにはどうすればよいですか?
\uXXXX と絵文字を正しくデコードしますか?
関連ツール
すべてのツールを見る →Base64エンコーダー&デコーダー
エンコーディングとフォーマット
Base64のデコード・エンコードが無料でオンラインで行えます。リアルタイム変換、UTF-8・絵文字対応。100%ブラウザ上で動作しデータは外部に送信されません。登録不要。
Base64 画像変換ツール
エンコーディングとフォーマット
Base64 文字列やデータURIをブラウザ上で画像に戻します。プレビューし、寸法と MIME を確認して、PNG・JPG・GIF・SVG としてダウンロード。アップロード不要。
CSV to JSON 変換ツール
エンコーディングとフォーマット
CSVをブラウザ内で即座にJSONに変換。RFC 4180・型推論・ヘッダー行・大整数安全対応。100%プライベート、アップロード不要。
HTML Markdown 変換ツール
エンコーディングとフォーマット
HTML をブラウザ内できれいな Markdown に変換 — GFM のテーブル、タスクリスト、リンク対応。ATX/Setext 見出しとインラインまたは参照リンクを選択。Web コンテンツの移行や LLM への投入に最適。完全プライベートでアップロード不要。
画像 Base64 変換ツール
エンコーディングとフォーマット
画像を Base64 データURIに変換 — PNG・JPG・GIF・WebP・SVG・ICO 対応。HTML・CSS・Markdown・JSON 形式で出力&コピー。完全プライベートでアップロード不要。
JSON Diff(差分)
エンコーディングとフォーマット
2つのJSONファイルをブラウザで即座に比較・差分確認。サイドバイサイドのハイライト表示、RFC 6902 JSON Patch出力、タイムスタンプやIDなどのノイズフィールドを無視。100%プライベート、アップロード不要。