JSON では、文字列中に特殊文字が含まれる場合、適切にエスケープする必要があります。以下に、エスケープが必要な全ての文字を示します。
エスケープが必要な文字とその方法
文字 | エスケープ方法 | 説明 |
---|---|---|
" |
\" |
ダブルクォート: 文字列の開始/終了を意味するため、エスケープが必要。 |
\ |
\\ |
バックスラッシュ: 自身をエスケープする必要がある。 |
/ |
\/ |
スラッシュ: 古いブラウザでは問題回避のためエスケープされることがある。 |
\b |
バックスペース | バックスペース文字 (ASCII: 8) |
\f |
フォームフィード | フォームフィード文字 (ASCII: 12) |
\n |
改行 | 改行文字 (ASCII: 10) |
\r |
復帰 | キャリッジリターン (ASCII: 13) |
\t |
タブ | 水平タブ文字 (ASCII: 9) |
\uXXXX |
Unicode | 特殊文字 (例: \u2028 = 行区切り, \u2029 = 段落区切り) |
エスケープが必要な例
{
"text": "He said, \"Hello, World!\" and left.",
"path": "C:\\Program Files\\App",
"unicode": "\u2028\u2029",
"newline": "First line.\nSecond line.",
"tab": "Key\tValue"
}
エスケープ前後の例
エスケープ前:
{"quote":"She said "Yes!""}
エスケープ後:
{"quote":"She said \"Yes!\""}
注意点
-
JSON.stringify
を利用する場合、JavaScriptではエスケープが自動的に処理されます。 - 生データを直接操作する場合、上記のルールを守る必要があります。