入力

エスケープ済みJSON

成功
警告

JSONエスケープ/アンエスケープとは?

JSON文字列には特定の文字しか含められません。リテラルのダブルクォート、改行、バックスラッシュをそのまま入れようとした瞬間、エスケープが必要になります。さもないとパーサーが壊れてしまいます。JSONエスケープはその変換を両方向で行います。人間が読める生のテキストをJSONで安全なリテラルに変換することも、すでにエスケープされた文字列から元のテキストを復元することもできます。

エスケープシーケンス自体は RFC 8259 §7 で定義されています。引用符には \"、バックスラッシュには \\、改行には \n、タブには \t、任意のUnicodeコードポイントには \uXXXX、そのほかいくつかがあります。これらは JSON.stringify が出力するのと同じシーケンスで、このツールはJavaScriptコンソールなしでその変換を提供するだけです。JSON構文の包括的な入門は、公式JSON仕様 を参照してください。

JSONエスケープ/アンエスケープの使い方

  1. 方向を選ぶ – エスケープ/アンエスケープの切り替えをクリックして、生テキスト → JSONで安全な文字列への変換、またはその逆を切り替えます。
  2. 入力を貼り付ける – 左のエディターにテキストを入れます。1行でも、複数行のブロックでも、すでに一部エスケープ済みでも構いません。ツールが自動で判別します。
  3. 出力を読む – 右のエディターに変換結果が即座に表示されます。特殊文字がエスケープシーケンスに置き換えられます(またはその逆)。
  4. 結果をコピーする – コピーボタンで変換後の文字列をクリップボードに入れ、JSONファイル、APIリクエストのボディ、データベースの列にそのまま貼り付けられます。
  5. サンプルを読み込む – 「サンプル」をクリックすると、最も一般的なエスケープシーケンスを含む実例が読み込まれ、変換のしくみを一目で確認できます。

プロのヒント: JSONオブジェクトを別のJSON文字列の中に埋め込む必要がある場合(例:JSON形式のログ行にペイロードを記録する場合)、内側のJSONをこのツールで一度だけエスケープすれば十分です。二重にエスケープする必要はありません。

引用符と改行を含むSMSテンプレート。左はロガーに送る生のテキスト、右はJSON文字列の中に収まるよう正しくエスケープしたものです。

生文字列 → エスケープ済み Escape
生テキスト"引用符" と改行を含む
Hi Ingrid,
your "Unlimited 5G" plan
renews on 2026-07-01.
Reply STOP to opt out.
Path: C:\Users\msg.txt
エスケープ済み(JSONで安全)1行のリテラル
"Hi Ingrid,\nyour \"Unlimited 5G\" plan\nrenews on 2026-07-01.\nReply STOP to opt out.\nPath: C:\\Users\\msg.txt"

よくあるユースケース

JSONの中にJSONを埋め込む

ロギングフレームワークは各ログエントリーが単一のJSONオブジェクトであることを期待することが多く、そのフィールドの1つが、厄介なことに別の場所から来たJSONペイロードだったりします。外側のオブジェクトが有効なまま保たれるよう、まず内側のJSONをエスケープしましょう。エスケープしないと、ペイロード内のすべての " が外側の文字列を閉じてしまい、行全体がパースに失敗します。

手作業でAPIリクエストボディを組み立てる

curl リクエストやテスト用フィクスチャを作っていて、ボディに自由形式のテキスト(SMSテンプレート、顧客メモ、HTMLスニペット)が含まれる場合、それをJSONボディに入れる前にエスケープしましょう。引用符、改行、バックスラッシュはすべて処理が必要です。MDNのJSONガイド に完全な一覧があります。

ログからエスケープ済み文字列を読む

逆方向も同じくらい一般的です。集中ログシステムからエントリーを取り出したら、ペイロードが二重エンコードされていて \"\n だらけ、ということがあります。一度アンエスケープして人間が読める元の形に戻し、構造を調べたいなら JSONフォーマッター にかけましょう。

主な機能

  • 双方向 – 1つの切り替えでエスケープとアンエスケープができ、別ツールは不要です。
  • RFC 8259準拠\uXXXX のUnicodeリテラルを含め、JSON仕様で定義されたすべてのエスケープシーケンスを処理します。
  • 複数行サポート – 改行やタブを含むテキストブロックを貼り付けても、入力が分割されることなく正しく変換されます。
  • プレーンテキストには冪等 – すでにクリーンな文字列にエスケープを実行しても何も変わりません。入力に必要かどうか分からなくても安全に使えます。
  • ブラウザ内のみで処理 – 何もアップロードされません。文字列はあなたのデバイスから出ません。

よくある質問

JSONで実際にエスケープが必要な文字はどれですか?

6つの文字が必要です。ダブルクォート、バックスラッシュ、そして4つの制御文字 — バックスペース、フォームフィード、改行、キャリッジリターン、タブ(厳密には5つ)です。さらに、U+0020未満のコードポイントはすべて \u 表記でエスケープしなければなりません。それ以外はUnicodeの文字や絵文字も含め、リテラルのまま使えます。正式な一覧は RFC 8259 §7 にあります。

エスケープとJSON.stringifyの違いは何ですか?

JSON.stringify はJavaScriptの値全体(オブジェクト、配列、数値、文字列)をJSONドキュメントにシリアライズします。文字列を引用符で囲み、エスケープを適用します。このツールは生の文字列に対してエスケープのステップだけを行い、周囲に引用符はつけません。オブジェクトを持っているときはstringifyを、JSONドキュメントの中に入れる文字列を持っているときはこのツールを使ってください。

絵文字やアクセント付き文字のような非ASCII文字をエスケープできますか?

はい。デフォルトでJSONは文字列内のあらゆるUTF-8文字を許可するので、絵文字やアクセント付き文字はそのまま通過します。ASCIIで安全な出力が必要な場合(古いシステムとの互換性のため)は、\u エスケープを有効にしてください。すべての非ASCIIコードポイントが \uXXXX になります。UnicodeとJSONの背景については、MDNのstringifyリファレンス を参照してください。

エスケープした文字列がまだパースできません。何が間違っていますか?

たいていは3つのうちのどれかです。対応しない引用符(開きはエスケープしたが閉じはしていない)、エスケープされずに残った改行、または有効なエスケープではない文字の前のバックスラッシュ(例:\x)。疑わしい文字列を JSONバリデーター にかけると、パースがどこで失敗するか正確に分かります。Stack OverflowのJSONタグ には、より厄介なケースの解決済み事例が何千件もあります。

データは安全ですか?

はい。エスケープとアンエスケープの変換は完全にブラウザ内で行われます。ネットワークに何も送信されず、何もキャッシュされず、何も記録されません。

関連ツール

  • JSON Formatter – アンエスケープした結果を整形して読みやすくします。
  • JSON Validator – エスケープした出力が有効なJSONか確認します。
  • JSON Minifier – 最もコンパクトなリテラルが必要なら、エスケープ前に空白を取り除きます。
  • JSON to Table – アンエスケープしたJSONをテーブルで表示し、素早く確認します。

役立つリソース

  • RFC 8259 §7 — Strings – すべてのJSONエスケープシーケンスの正式な一覧。
  • JSON.org – 文字列文法のレイルロード図を備えたオリジナルのJSON仕様。
  • MDN — JSON.stringify – JavaScript組み込みのシリアライザーがエスケープをどう扱うか、例付きで解説。
  • W3Schools JSON Syntax – JSON構文ルールの初心者向けウォークスルー。
  • Stack Overflow JSON Tag – 厄介なエスケープやパースの問題の解決済み事例。