Skip to content

JSON文字列エスケープ

任意のテキストやJSONを、有効なJSON文字列リテラルにブラウザ内でエスケープ。引用符・改行・タブ・Unicode・スラッシュに対応。完全プライベート、アップロードなし、即時変換。

トラッキングなし ブラウザで動作 無料
オプション
二重引用符で囲む
非ASCIIをエスケープ(\uXXXX)
スラッシュをエスケープ(\/)
0 文字
エスケープ済み文字列
0 文字
JSON仕様への準拠、サロゲートペアの正確性、ラウンドトリップの安全性、HTML埋め込みのスラッシュエスケープについてレビュー済み — Go Tools エンジニアリングチーム · Jun 10, 2026

JSONエスケープとは?

JSONエスケープとは、生の文字列を、JSONドキュメント内に安全に埋め込める形へ変換する処理のことです。JSONには構造的な意味を持つ少数の文字があります。二重引用符は文字列を区切り、バックスラッシュはエスケープシーケンスを開始します。さらに、文字列内にそのまま現れることが許されない制御文字(改行、タブ)もあります。エスケープは、これらをそれぞれ安全な2文字のシーケンス(\"、\\、\n、\t)や \uXXXX のUnicodeエスケープに置き換えるので、結果の文字列はどこでもきれいにパースされます。

JSONエスケープは思っている以上に頻繁に必要になります。最も一般的なケースはJSON-in-JSONです。Webhookのエンベロープ、メッセージキューのペイロード、監査ログが、リクエストボディを文字列フィールドとして保存します。つまり、内側のJSONを代入する前にエスケープしなければなりません。もう1つは、JSON設定の手書きです。複数行のシェルスクリプト・SQLクエリ・コードスニペットを1つのJSON値に貼り付けるには、すべての改行を \n に変換する必要があります。3つ目は、curl のようなツールで手作業でRESTリクエストボディを組み立てる場合で、引用符付きのJSON文字列はシェルとHTTP層を生き延びるためにエスケープしなければなりません。

このツールには、素朴なエスケープツールに対して3つの差別化点があります。第一に、正確なJSON仕様の規則(準拠したシリアライザーが使うのと同じロジック)に基づいているため、出力は無損失でラウンドトリップします。ここでエスケープし、どこでパースしても、バイトがそのまま戻ります。第二に、任意のASCIIセーフモードが、すべての非ASCII文字(追加面の絵文字もサロゲートペアとして処理)を \uXXXX に変換します。UTF-8を信用できないシステム向けです。第三に、すべてが100%ブラウザ内で実行されます。個人情報・トークン・機密情報をよく含むペイロードが、サーバーに触れることはありません。処理を逆にするには、当社のJSONアンエスケープツールを、先にJSONを検証するにはJSONフォーマッターをご覧ください。

// Input text
She said "hi"
then left.

// Escaped (Wrap on) — identical to JSON.stringify(input)
"She said \"hi\"\nthen left."

// Escaped (Wrap off) — just the body, for hand-built JSON
She said \"hi\"\nthen left.

// JSON-in-JSON
{"a":1}  ->  "{\"a\":1}"  ->  {"payload": "{\"a\":1}"}

主な機能

仕様に忠実なエスケープ

JSON仕様の正確な規則に基づいて構築。引用符・バックスラッシュ・改行・タブ・復帰・制御文字が、準拠したシリアライザーと同一にエスケープされます。出力はあらゆるJSONパーサーを無損失でラウンドトリップします。

引用符付き・なしの出力

「二重引用符で囲む」オンで完全なJSON文字列リテラル(JSON.stringify と同じ)が、オフでエスケープ済み本文だけが得られます。後者は、手書きのJSONドキュメントで囲み引用符を自分で入力するときに便利です。

ASCIIセーフ \uXXXX モード

任意で、U+007F を超えるすべての文字をUnicodeエスケープに変換でき、絵文字のような追加面の文字も正しいサロゲートペアとして処理されます。出力は純粋なASCIIで、UTF-8を正しく扱えないレガシーパイプラインでも安全です。

HTMLセーフなスラッシュエスケープ

「スラッシュをエスケープ」は / を \/ にして </script> シーケンスを無害化するので、HTMLの <script> タグ内にJSONをインライン化してもタグが早く閉じません。その他の場所ではきれいな出力のためデフォルトでオフです。

ラウンドトリップ検証のためのスワップ

1つの「方向を切り替え」ボタンでその場でアンエスケープモードに反転し、出力を入力として戻すので、出荷前にエスケープ → アンエスケープが元のテキストをバイト単位で返すことを確認できます。

100%ブラウザ内処理のプライバシー

すべてのエスケープがクライアントサイドで実行されます。ペイロード(個人情報・トークン・機密情報)がブラウザを離れることはありません。ネットワークタブで確認できます。貼り付け時のリクエストはゼロです。オンラインツールで機密データをエスケープする唯一の安全な方法です。

JSONの中にJSONを埋め込む(JSON-in-JSON)

{"event":"signup","user":{"id":42,"name":"Alice"}}

このオブジェクトをエスケープして、別のJSONドキュメント内の文字列値として格納できるようにします(例:Webhookのペイロードフィールドや Kafka メッセージのエンベロープ)。「引用符で囲む」をオンにすると、コロンの直後にそのまま貼り付けられる出力になります。

複数行のコードスニペットを設定フィールドへ

function greet(name) {
  return `Hello, ${name}!`;
}

複数行のJS関数を1行のJSON文字列に変換します。改行は \n になり、バッククォートのテンプレートはそのまま保持されるので、ファイルを壊さずにJSON設定値に貼り付けられます。

引用符とタブを含むテキスト

She said "hello"	then left.

二重引用符は \" に、タブは \t にエスケープされるため、この文字列はあらゆるJSONパーサー・ログ行・RESTリクエストボディに安全に挿入できます。

レガシーシステム向けのASCIIセーフ出力

Price: 9.99€ — café société

「非ASCIIをエスケープ」を切り替えると、€ やアクセント付き文字が \uXXXX に変換されます。結果は純粋なASCIIとなり、転送中にUTF-8を壊してしまうシステムでも安全です。

使い方

  1. 1

    テキストまたはJSONを貼り付ける

    入力欄に何でも入力または貼り付けます。JSONオブジェクト、コードスニペット、ログ行、普通のテキストなど。エスケープ済みの結果が即座に表示されます。「例を読み込む」をクリックすると、JSON-in-JSONペイロードや複数行関数などのサンプルを試せます。

  2. 2

    エスケープオプションを選ぶ

    完全なJSON文字列リテラル(JSON.stringify と同じ)が欲しいときは「二重引用符で囲む」をオンに、エスケープ済み本文だけが欲しいときはオフにします。純粋なASCIIの \uXXXX 出力には「非ASCIIをエスケープ」を、HTMLの <script> タグ内にJSONをインライン化するときは「スラッシュをエスケープ」を切り替えます。

  3. 3

    エスケープ済み文字列をコピーする

    「コピー」をクリックすると結果が取得でき、JSONドキュメント・RESTリクエストボディ・設定ファイルにそのまま貼り付けられます。「方向を切り替え」をクリックするとアンエスケープモードに反転し、無損失のラウンドトリップを検証できます。

よくあるエスケープの落とし穴

二重エスケープ(すでにエスケープ済みのテキストをエスケープする)

エスケープを2回実行すると \n は \\n に、\" は \\\" になり、消費側は改行ではなくリテラルのバックスラッシュ-n を見ることになります。これは通常、テキストが上流ですでにJSONエスケープされていた場合に起こります。まずアンエスケープ(方向を切り替え)して確認し、それから正確に1回だけエスケープします。

✗ 誤り
Input already escaped: line1\nline2
Escaped again -> line1\\nline2  (literal backslash-n)
✓ 正しい
Raw input: line1
line2
Escaped once -> line1\nline2  (real newline encoded)

囲み引用符を忘れる

「Wrap」オフでは、エスケープ済み本文だけが得られ、完全なJSON文字列ではありません。それを値が期待される場所に直接貼り付けると、引用符が欠けているため無効なJSONになります。「Wrap」をオンに保つか、引用符を自分で入力するようにしてください。

✗ 誤り
{"msg": hello \"world\"}
// Missing quotes around the value -> invalid JSON
✓ 正しい
{"msg": "hello \"world\""}
// Wrap on supplies the quotes -> valid JSON

不必要に非ASCIIを過剰エスケープする

消費側がUTF-8を問題なく扱えるのに「非ASCIIをエスケープ」をオンにすると、出力が肥大化して可読性が落ちるだけです。理由もなく café が caf\u00e9 になります。特定のレガシーシステムが純粋なASCIIを要求しない限り、このオプションはオフにしておきます。

✗ 誤り
café  ->  caf\u00e9   (no downstream need; just noise)
✓ 正しい
café  ->  café         (valid JSON, readable, smaller)

よくある使用例

JSON-in-JSONのWebhookペイロード
リクエストボディをエスケープして、Webhookエンベロープ・Kafkaメッセージ・監査ログ内の文字列フィールドとして保存できるようにします。「Wrap」をオンにしておけば、外側のドキュメントのキーにそのまま代入できる出力になります。
設定内の複数行スニペット
複数行のシェルスクリプト・SQLクエリ・コードスニペットを1つのJSON文字列値に変換します。すべての改行が \n になるので、JSON設定ファイルは1行でも有効なまま保たれます。
手書きのRESTリクエストボディ
JSON文字列をエスケープしてから curl --data 引数やHTTPクライアントに渡すので、引用符や改行がシェルと通信路を生き延び、リクエストが壊れません。
ログセーフな文字列エンコード
ユーザー提供のコンテンツを構造化ログ行に書き込む前にエスケープし、注入された引用符や改行がログ形式や下流のJSONログパーサーを破損させるのを防ぎます。
ASCII限定のレガシー連携
SOAPゲートウェイ・メールヘッダー・転送中にUTF-8を壊す古いシステム向けに純粋なASCIIの \uXXXX 出力を生成しつつ、あらゆる現代のJSONパーサーで完全にデコード可能なまま保ちます。
HTMLへのJSONインライン化
スラッシュをエスケープして、サーバーレンダリングページの <script> タグ内にJSONブロブを直接埋め込めるようにします。データ内の </script> がタグを早く閉じることはありません。

技術的な詳細

エスケープアルゴリズム
このツールは、JSON仕様の文字列規則で入力をシリアライズします。U+0022 (") → \"、U+005C (\) → \\、U+0008 → \b、U+000C → \f、U+000A → \n、U+000D → \r、U+0009 → \t、そしてその他の U+0020 未満の文字 → \u00XX です。「Wrap」オンで囲みの二重引用符が含まれ、オフで取り除かれます。これは準拠したシリアライザーの出力と正確に一致し、無損失のラウンドトリップを保証します。
Unicodeとサロゲートペア
デフォルトでは、U+007F を超える文字はリテラルなUTF-8として出力され、これはJSONが許可します。「非ASCIIをエスケープ」オンにすると、そのような各文字がUTF-16コード単位を使って \uXXXX に変換されます。基本多言語面の外の文字(絵文字、希少な文字体系)は2つの \uXXXX エスケープのサロゲートペアとしてエンコードされます。たとえば 😀 (U+1F600) は \ud83d\ude00 になり、これはJSONシリアライザーが生成するのと同じ表現です。
スラッシュとHTMLコンテキスト
JSONは / のエスケープを要求しないため、デフォルトでは保持されます。「スラッシュをエスケープ」が有効なとき、すべての / が \/ になります。これを行う唯一の実用的な理由はHTML埋め込みです。<script> タグ内では、リテラルの部分文字列 </script> がJSONコンテキストに関係なくタグを閉じてしまうため、スラッシュを <\/script> にエスケープすると、インライン化されたJSONを保ちつつ仕様にも準拠したままになります。

ベストプラクティス

完全なリテラルには Wrap をオンに保つ
コードで代入する値や、JSONでコロンの後に貼り付ける値が必要なときは「二重引用符で囲む」をオンに保ちます。出力は JSON.stringify と同一の、完全でパース可能なJSON文字列です。囲み引用符を自分で手入力する場合のみオフにします。
必要でない限りUnicodeエスケープはオフに
生のUTF-8は有効なJSONであり、はるかに読みやすいです。「非ASCIIをエスケープ」は、UTF-8を正しく扱えない特定の下流システム(レガシーSOAP、一部のログパイプライン、ASCII限定のソースファイル)のためだけに有効にします。デフォルトですべてをエスケープすると、出力が騒がしくなるだけです。
スラッシュはHTML埋め込みのときだけエスケープ
スラッシュエスケープが意味を持つのはちょうど1か所、HTMLの <script> タグにインライン化されたJSONです。その文脈の外では利点なしに雑然とするだけなので、RESTボディ・設定ファイル・メッセージペイロードではオフにしておきます。
スワップでラウンドトリップを検証する
エスケープ済みデータをパイプラインに出荷する前に、「方向を切り替え」をクリックしてアンエスケープし、元のテキストが戻ることを確認します。これにより、意図せぬ二重エスケープ(\n のつもりが \\n になる頻出の原因)を検出できます。逆変換はいつでも当社のJSONアンエスケープツールで行えます。

よくある質問

このJSONエスケープツールは何をしますか?
任意のテキスト(JSONオブジェクト、コードスニペット、ログ行、あるいは普通の文章)を、有効なJSON文字列リテラルに、すべてブラウザ内で変換します。JSONドキュメントを壊してしまう特殊文字がエスケープされます。二重引用符は \" に、バックスラッシュは \\ に、改行は \n に、タブは \t に、復帰は \r に、その他の制御文字は \uXXXX になります。結果として得られる文字列は、JSONドキュメント・RESTリクエストボディ・設定ファイル・データベースのカラムに値として安全に貼り付けられます。何もアップロードされません。変換は100%クライアントサイドで実行されるため、個人情報・機密情報・社内データを含むペイロードでも安全です。
JSONエスケープとJSON stringifyの違いは何ですか?
どちらも同じ中核的な操作を、2つの角度から説明したものです。JavaScriptの JSON.stringify() は値を受け取りそのJSONテキスト表現を生成します。値が文字列の場合、それは二重引用符で囲み、内部の特殊文字をエスケープすることを意味します。これはまさにJSONエスケープです。このツールはまさにそれを行います。「二重引用符で囲む」をオンにすると、出力は JSON.stringify(あなたのテキスト) と一致し、オフにすると、囲み引用符のないエスケープ済み本文が得られます。後者は、JSONを手書きしていて引用符をすでに入力済みの場合に必要なものです。つまり、json stringify online で検索したなら、これがそのツールです。引用符付き・なしの両方の形式が得られます。
私のデータはどこかにアップロードされますか?
いいえ。すべてのエスケープ処理はJavaScriptを使ってブラウザ内で完結します。あなたのテキストがサーバーに送信・保存・記録・分析されることは一切ありません。そのため、個人情報・認証トークン・社内設定・本番の機密情報を含むAPIペイロードでも安全に扱えます。ブラウザのネットワークタブで確認できます。入力や貼り付けを行ってもネットワークリクエストはゼロです。入力内容を保存するCookieも、貼り付けた内容を取得するサードパーティ分析もありません。
\uXXXX(非ASCIIエスケープ)オプションはいつ必要ですか?
JSONは生のUTF-8を許可するため、デフォルトでは é は é のまま、絵文字は絵文字のまま残ります。これは完全に有効で、より読みやすい形です。「非ASCIIをエスケープ」をオンにするのは、下流のシステムがUTF-8を確実に扱えないと信用できない場合だけにしてください。古いSOAP/XMLゲートウェイ、一部のロギングパイプライン、メールヘッダー、純粋なASCIIを保つ必要のあるソースファイルなどです。オンにすると、U+007F を超えるすべての文字が \uXXXX シーケンスになります(絵文字のような追加面の文字はサロゲートペアになります。例:😀 → \ud83d\ude00)。エスケープ済み出力はバイト単位でASCIIとなり、準拠したJSONパーサーであれば元のUnicodeへデコードして戻せます。
別のJSON文字列の中にJSONオブジェクトを埋め込む(JSON-in-JSON)にはどうすればよいですか?
内側のJSONを入力欄に貼り付け、「二重引用符で囲む」をオンのままにして結果をコピーします。これで、外側のドキュメントのキーに代入できる、1つのエスケープ済み文字列になります。たとえば {"a":1} は "{\"a\":1}" になり、コロンの後に配置します:{"payload": "{\"a\":1}"}。この二重エンコードは、Webhookのエンベロープ、メッセージキューのペイロード、リクエストボディを文字列として保存する監査ログでよく見られます。これを逆変換して内側のオブジェクトを読むには、当社のJSONアンエスケープツールをご利用ください。
スラッシュをエスケープ(\/)オプションは何をしますか?
スラッシュ / はJSONでは通常の文字でエスケープを必要としないため、デフォルトではそのまま残されます。このオプションは1つの特定のケースのために存在します。HTMLの <script> タグ内にJSONを埋め込む場合で、そこでは </script> というシーケンスがタグを早く閉じてしまいます。/ を \/ にエスケープすると、</script> は <\/script> になり、依然として有効なJSONですがタグ終端子ではなくなります。HTML内にJSONをインライン化する場合のみ有効にしてください。それ以外の用途では、よりきれいな出力のためにオフのままにします。
改行・タブ・制御文字は正しく処理されますか?
はい。このツールはJSON仕様の正確なエスケープ規則に基づいています。改行 → \n、復帰 → \r、タブ → \t、バックスペース → \b、フォームフィード → \f、二重引用符 → \"、バックスラッシュ → \\、そして U+0020 未満の残りの制御文字 → \uXXXX です。これは準拠したJSONシリアライザーが生成するものと同一であり、出力は無損失でラウンドトリップします。ここでエスケープし、どこでパースしても、元のテキストがバイト単位でそのまま戻ってきます。

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%プライベート、アップロード不要。