JSON エスケープ/ エスケープ · アンエスケープ
JSON 文字列のエスケープ・アンエスケープ。ダブルクォート、改行、タブなどの特殊文字を自動処理。API デバッグに必須。
プレーンテキスト → JSON 文字列
プレーンテキスト
0 文字
エスケープ済み文字列
0 文字
JSON エスケープシーケンス
\\バックスラッシュ\"ダブルクォート\n改行 (LF)\r復帰 (CR)\tタブ\fフォームフィード\bバックスペース\uXXXXUnicode コードポイントこのツールは役に立ちましたか?
コード例
JavaScript
const raw = 'Hello "World"\nLine 2';
const escaped = JSON.stringify(raw).slice(1, -1);
// 'Hello \"World\"\\nLine 2'
const unescaped = JSON.parse('"' + escaped + '"');Python
import json
raw = 'Hello "World"\nLine 2'
escaped = json.dumps(raw)[1:-1]
original = json.loads('"' + escaped + '"')Go
raw := "Hello \"World\"\nLine 2" b, _ := json.Marshal(raw) // string(b) includes outer quotes
Shell (curl)
# Escape for curl:
curl -d '{"msg": "Hello\nWorld"}' ...
# Or use Python:
python3 -c "import json,sys; print(json.dumps(sys.stdin.read()))"よくある質問
なぜ JSON 文字列はエスケープが必要ですか?
JSON 仕様(RFC 8259)では、文字列内の特殊文字はバックスラッシュでエスケープする必要があります。最も一般的なのはダブルクォート("→\")、改行(→\n)、バックスラッシュ(\→\\)です。エスケープされていない特殊文字は JSON パースエラーの原因になります。
JSON 文字列でエスケープが必要な文字は何ですか?
ダブルクォート("→\")、バックスラッシュ(\→\\)、制御文字(U+0000〜U+001F)。改行(\n)、復帰(\r)、タブ(\t)、バックスペース(\b)、フォームフィード(\f)が含まれます。その他の Unicode 文字はエスケープ不要ですが、\uXXXX 形式で表現できます。
JSON.stringify と手動エスケープの違いは?
JSON.stringify(str) は結果の両端にダブルクォートを付け、すべての必要なエスケープを処理します。手動エスケープはクォートを付けずに文字列内部のみを処理し、既存の JSON 構造にテキストを埋め込む場合に適しています。
\uXXXX 形式とは?
\uXXXX は JSON の Unicode エスケープシーケンスで、XXXX は 4 桁の 16 進コードポイントです。例:\u0009 はタブ文字、\u4e2d は漢字「中」。すべての Unicode 文字をこの形式で表現できますが、通常は ASCII 出力が必要な場合にのみ使用されます。
API デバッグ時にどう使いますか?
一般的な使用例:1)複数行テキストを JSON フィールドに入れる前にエスケープ。2)curl コマンド用の JSON body を準備 — シェルのクォートと JSON のクォートが衝突するため。3)SQL クエリを JSON リクエストボディに埋め込む際の処理。
JSON エスケープと HTML エスケープの違いは?
JSON エスケープはバックスラッシュ(\)を使用し、JSON 仕様に準拠することが目的。HTML エスケープは HTML エンティティ(&、<、")を使用し、マークアップ文字の処理が目的。JSON を HTML に埋め込む場合、両方のエスケープが必要で、順序は JSON → HTML が正しいです。